sorted()
是 Python 中的一个内置函数,用于对可迭代对象进行排序。这意味着它可以用来排序列表、元组、字典(基于键)以及其他可迭代的对象。 sorted()
函数返回一个新的、排序后的列表,原始输入对象不会被修改(即它是不可变的)。下面是一些关于 sorted()
函数的基本用法和高级特性的详细讲解。
sorted(iterable, /, *, key=None, reverse=False)
iterable
: 需要排序的可迭代对象。key
: 如果需要按照指定的方式进行排序,可以传递一个带有单个参数的函数,此函数将被用于从迭代中的每个元素中提取比较的键 (默认为 None)。reverse
: 如果设置为 True
,则列表元素将以降序被排列,默认为 False
(升序)。# 对列表进行升序排序
my_list = [3, 1, 4, 1, 5, 9, 2]
print(sorted(my_list))
# 输出:[1, 1, 2, 3, 4, 5, 9]
reverse
参数# 对列表进行降序排序
print(sorted(my_list, reverse=True))
# 输出:[9, 5, 4, 3, 2, 1, 1]
key
参数# 按字符串长度排序
words = ['banana', 'pie', 'Washington', 'book']
print(sorted(words, key=len))
# 输出:['pie', 'book', 'banana', 'Washington']
虽然 sorted()
本身不能直接排序字典,但你可以用它来基于字典的键或值进行排序。
# 基于键排序
my_dict = {'a': 3, 'b': 1, 'c': 2}
print(sorted(my_dict))
# 输出:['a', 'b', 'c']
# 基于值排序
print(sorted(my_dict.items(), key=lambda item: item[1]))
# 输出:[('b', 1), ('c', 2), ('a', 3)]
sorted()
的 key
参数非常强大,因为你可以传递一个自定义函数来控制排序逻辑。例如,你可以基于对象的某个属性或者更复杂的数据结构中的值来排序。
sorted()
返回的是一个新列表,原列表不会被改变。sorted()
是 Python 中一个非常实用的函数,它提供了强大而灵活的方式来排序各种类型的数据。