欢迎访问宙启技术站
智能推送

Python中的sort()函数:用法和例子

发布时间:2023-06-19 00:00:11

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()函数,先将字典按值进行排序,然后重新构建一个新的字典。