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

Python中用于排序的相关函数

发布时间:2023-08-16 16:32:00

Python提供了多种用于排序的函数和方法。以下是常用的几种排序函数和方法:

1. sorted()函数:该函数可以对列表或迭代器进行排序,并返回一个新的已排序的列表。例如:

nums = [3, 1, 4, 1, 5, 9, 2, 6, 5]
sorted_nums = sorted(nums)
print(sorted_nums)  # 输出:[1, 1, 2, 3, 4, 5, 5, 6, 9]

2. list.sort()方法:该方法可以原地对列表进行排序,即直接改变原列表的顺序。例如:

nums = [3, 1, 4, 1, 5, 9, 2, 6, 5]
nums.sort()
print(nums)  # 输出:[1, 1, 2, 3, 4, 5, 5, 6, 9]

3. sorted()函数和list.sort()方法也支持传入关键字参数key,用于指定排序的依据。例如,可以根据元素的绝对值进行排序:

nums = [-3, 1, -4, 1, 5, -9, 2, 6, -5]
sorted_nums = sorted(nums, key=abs)
print(sorted_nums)  # 输出:[1, 1, 2, -3, -4, -5, 5, 6, -9]

4. sorted()函数和list.sort()方法还支持传入关键字参数reverse,用于指定排序的顺序。例如,可以按降序对列表进行排序:

nums = [3, 1, 4, 1, 5, 9, 2, 6, 5]
sorted_nums = sorted(nums, reverse=True)
print(sorted_nums)  # 输出:[9, 6, 5, 5, 4, 3, 2, 1, 1]

5. operator模块:该模块提供了一些用于排序的操作符函数,如operator.itemgetter()函数用于获取对象的某个属性进行排序,operator.attrgetter()函数用于获取对象的某个属性进行排序。例如,可以根据字典的值对字典进行排序:

import operator

data = {"a": 3, "b": 1, "c": 4, "d": 1, "e": 5}
sorted_data = sorted(data.items(), key=operator.itemgetter(1))
print(sorted_data)  # 输出:[('b', 1), ('d', 1), ('a', 3), ('c', 4), ('e', 5)]

总结:以上是Python中常用的几种排序函数和方法,可以根据需求选择合适的方法进行排序。