python的sorted函数
sorted
函数用于对可迭代对象进行排序。你可以使用 sorted
函数来按照默认的升序顺序对元素进行排序,也可以使用 key
参数来指定一个自定义的排序关键字函数。以下是 sorted
函数的基本用法以及关于 key
参数的详细说明:
基本用法:
sorted(iterable, key=None, reverse=False)
iterable
:要排序的可迭代对象,例如列表、元组或字符串。key
(可选):一个函数,用于生成排序的关键字。默认为None
,表示按照元素的原始值排序。reverse
(可选):一个布尔值,控制排序顺序。如果设置为True
,则降序排序(从大到小),默认为False
,即升序排序(从小到大)。
示例使用 sorted
函数:
# 示例1:按默认升序排序
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_numbers = sorted(numbers)
# sorted_numbers 现在包含 [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
# 示例2:按照字符串长度排序
words = ["apple", "banana", "cherry", "date"]
sorted_words = sorted(words, key=len)
# sorted_words 现在包含 ["date", "apple", "cherry", "banana"]
在示例2中,我们使用了 key
参数,将 len
函数作为关键字函数,以便按照字符串的长度进行排序。这意味着在排序时,sorted
函数会根据每个元素通过 len
函数生成的值进行比较。
,经常将 lambda
表达式与 key
参数搭配使用,特别是在需要自定义排序规则时非常有用。通过 lambda
表达式,你可以定义一个匿名函数来生成排序关键字,而不必显式定义一个命名函数。这使得代码更简洁和紧凑。
下面是一个示例,演示了如何使用 lambda
表达式和 key
参数来对列表中的字典按照特定的键值进行排序:
data = [
{'name': 'Alice', 'age': 30},
{'name': 'Bob', 'age': 25},
{'name': 'Eve', 'age': 35}
]
# 使用 lambda 表达式和 key 对字典列表按照 'age' 键进行排序
sorted_data = sorted(data, key=lambda x: x['age'])
# sorted_data 现在包含按照 'age' 键升序排序的字典列表
# [{'name': 'Bob', 'age': 25}, {'name': 'Alice', 'age': 30}, {'name': 'Eve', 'age': 35}]
在上面的示例中,我们使用 lambda
表达式定义了一个匿名函数,该函数接受一个字典并返回 'age' 键的值,这个函数作为 key
参数传递给 sorted
函数。这样,sorted
函数就会按照 'age' 键的值对字典列表进行排序。
本文来自博客园,作者:海_纳百川,转载请注明原文链接:https://www.cnblogs.com/chentiao/p/17697471.html,如有侵权联系删除