python sort函数排序实例
时间: 2024-09-24 10:25:11 浏览: 42
Python内置的`sort()`函数用于对列表进行排序,它会直接修改原列表。下面是一些基本的排序实例:
```python
# 对整数列表升序排序
numbers = [4, 2, 9, 6, 1]
numbers.sort() # 输出:[1, 2, 4, 6, 9]
# 对字符串列表按字母顺序排序
fruits = ['banana', 'apple', 'orange']
fruits.sort() # 输出:['apple', 'banana', 'orange']
# 可以指定排序关键字,比如按元组的第一个元素排序
students = [('Alice', 25), ('Bob', 20), ('Charlie', 30)]
students.sort(key=lambda x: x[1]) # 按年龄降序排序
# 输出:[('Charlie', 30), ('Alice', 25), ('Bob', 20)]
# 对列表中的自定义对象进行排序,需要实现__lt__比较器
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
people = [Person("Tom", 27), Person("Jerry", 22), Person("Spike", 30)]
people.sort(key=lambda p: p.age) # 按年龄排序
```
相关问题
python .sort函数
### Python 中 `.sort()` 方法详解
`.sort()` 是列表对象的一个方法,用于就地对列表进行排序。此方法不会创建新的列表实例而是修改原始列表[^1]。
```python
# 定义一个无序列表
list_a = [1, 2, 8, 3, 7, 9, 5, 7]
# 调用 .sort() 对列表进行升序排列
list_a.sort()
print("After sorting: ", list_a)
```
当调用 `list_a.sort()` 后,`list_a` 将被原位排序成 `[1, 2, 3, 5, 7, 7, 8, 9]`。需要注意的是,由于 `.sort()` 修改了原有数据结构并返回 `None`,因此不应尝试将其赋值给另一个变量。
如果希望按照降序方式来安排元素,则可以通过设置参数 `reverse=True` 来实现:
```python
# 按照降序排列
list_a.sort(reverse=True)
print("Descending order:", list_a)
```
对于更复杂的排序需求,比如基于特定条件或属性来进行排序时,可以利用可选的关键字参数 `key` 提供自定义比较逻辑[^2]。
例如,假设有一个由字符串组成的列表,并想要忽略大小写按字母顺序排序:
```python
str_list = ["banana", "Apple", "orange"]
str_list.sort(key=str.lower)
print(str_list)
```
上述代码会输出 `['Apple', 'banana', 'orange']`,这是因为通过指定 `key=str.lower` 让排序过程考虑到了不区分大小写的自然排序规则。
阅读全文