Python中的sort()函数:用法和例子
Python中的sort()函数是一种排序算法,它可以对列表中的元素进行排序。sort()函数会直接修改原始列表,而不返回一个新的排序后的列表。sort()函数有两个可选参数,分别是reverse和key。
reverse表示是否逆序排序,默认是False表示升序排序,True表示降序排序。例如:
lst = [3, 5, 1, 9, 2] lst.sort(reverse=True) print(lst)
输出结果为:[9, 5, 3, 2, 1]
key表示排序的关键字,可以是一个函数或lambda表达式,用于自定义排序规则。例如:
lst = ["apple", "banana", "Pear", "orange"] lst.sort(key=lambda x: x.lower()) print(lst)
输出结果为:['apple', 'banana', 'orange', 'Pear']
这里使用了lambda表达式将所有元素转换为小写字母进行排序,所以"orange"会排到"Pear"的前面。
sort()函数的时间复杂度为O(nlogn),所以它适用于较小的列表。当需要对较大的数据集进行排序时,通常可以使用快速排序或归并排序等更高效的排序算法。
下面是sort()函数的用法和例子:
1. 对数字列表进行排序
lst = [3, 5, 1, 9, 2] lst.sort() print(lst)
输出结果为:[1, 2, 3, 5, 9]
2. 对字符串列表按长度进行排序
lst = ["apple", "banana", "Pear", "orange"] lst.sort(key=lambda x: len(x)) print(lst)
输出结果为:['Pear', 'apple', 'banana', 'orange']
3. 对字典列表按指定字段进行排序
lst = [{"name": "John", "age": 25}, {"name": "Jane", "age": 18}, {"name": "Tom", "age": 22}]
lst.sort(key=lambda x: x["age"])
print(lst)
输出结果为:[{'name': 'Jane', 'age': 18}, {'name': 'Tom', 'age': 22}, {'name': 'John', 'age': 25}]
4. 对元组列表按第二个元素进行排序
lst = [("apple", 3), ("banana", 2), ("Pear", 5), ("orange", 1)]
lst.sort(key=lambda x: x[1])
print(lst)
输出结果为:[('orange', 1), ('banana', 2), ('apple', 3), ('Pear', 5)]
5. 对集合进行排序
lst = {3, 5, 1, 9, 2}
lst = sorted(lst)
print(lst)
输出结果为:[1, 2, 3, 5, 9]
6. 对字典按值进行排序
d = {"apple": 3, "banana": 2, "Pear": 5, "orange": 1}
d = {k: v for k, v in sorted(d.items(), key=lambda x: x[1])}
print(d)
输出结果为:{'orange': 1, 'banana': 2, 'apple': 3, 'Pear': 5}
这里使用了字典推导式和sorted()函数,先将字典按值进行排序,然后重新构建一个新的字典。
