Python 内建函数列表 > Python 的内置函数 sorted
Python 的内置函数 sorted() 是一个用于排序的可迭代对象的高阶函数,它接受一个可迭代对象作为输入,并返回一个新的已排序的列表。与列表的 sort() 方法不同,sorted() 不会修改原始的可迭代对象,而是生成一个新的排序后的列表。
sorted(iterable, key=None, reverse=False)
iterable:需要排序的可迭代对象(如列表、元组、字符串等)
key(可选):指定一个函数作为排序的关键字,默认为 None
reverse(可选):布尔值,指定是否降序排序,默认为 False(升序)
numbers = [5, 2, 9, 1, 5, 6]
sorted_numbers = sorted(numbers)
print(sorted_numbers) # 输出:[1, 2, 5, 5, 6, 9]
numbers = [5, 2, 9, 1, 5, 6]
sorted_numbers = sorted(numbers, reverse=True)
print(sorted_numbers) # 输出:[9, 6, 5, 5, 2, 1]
key 参数允许你指定一个函数,用于从每个元素中提取比较键。例如,对字符串列表按长度排序:
words = ["apple", "banana", "cherry", "date"]
sorted_words = sorted(words, key=len)
print(sorted_words) # 输出:['date', 'apple', 'banana', 'cherry']
假设有一个学生列表,每个学生是一个字典:
students = [
{"name": "Alice", "age": 20},
{"name": "Bob", "age": 18},
{"name": "Charlie", "age": 22}
]
# 按年龄排序
sorted_students = sorted(students, key=lambda x: x["age"])
print(sorted_students)
# 输出:[{'name': 'Bob', 'age': 18}, {'name': 'Alice', 'age': 20}, {'name': 'Charlie', 'age': 22}]
数据预处理:在数据分析或机器学习中,经常需要对数据进行排序。
展示排序结果:在网页或应用中展示排序后的列表。
算法实现:某些算法(如合并排序)可能需要使用 sorted() 作为辅助函数。
对于大型数据集,sorted() 可能会消耗较多内存,因为它需要创建一个新的列表。
如果需要对列表进行原地排序,可以使用 list.sort() 方法,它不会创建新的列表。
通过灵活使用 key 和 reverse 参数,sorted() 函数能够满足各种复杂的排序需求。