📅  最后修改于: 2023-12-03 15:04:12.731000             🧑  作者: Mango
如果你有一个包含元组的列表,你可以使用 Python 的内置函数 sorted()
来按列表排序元组。在排序时,可以指定按元组中的特定元素进行排序。这个方法可以用来对实际数据进行排序。
sorted(iterable, key=None, reverse=False)
参数说明:
iterable
:可迭代对象,如列表、元组、字典等。key
:用来排序的元素。可以是函数、类等等。如果指定了函数,则每个元素都会经过函数处理后再进行排序。reverse
:排序规则。reverse=true 表示降序,reverse=False 表示升序(默认)。# 对元组的第一个元素进行升序排序
tuples = [(1, 'one'), (2, 'two'), (4, 'four'), (3, 'three')]
sorted_tuples = sorted(tuples, key=lambda x: x[0])
print(sorted_tuples)
# Output: [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]
# 对元组的第二个元素进行降序排序,如果第二个元素相同,则对第一个元素进行升序排序
tuples = [(1, 'one'), (3, 'three'), (2, 'two'), (3, 'four')]
sorted_tuples = sorted(tuples, key=lambda x: (-x[1], x[0]))
print(sorted_tuples)
# Output: [(3, 'three'), (3, 'four'), (2, 'two'), (1, 'one')]
# 对第二个元素的前两个字符进行升序排序
tuples = [(1, 'apple'), (3, 'peach'), (2, 'pear'), (3, 'orange')]
sorted_tuples = sorted(tuples, key=lambda x: x[1][:2])
print(sorted_tuples)
# Output: [(1, 'apple'), (3, 'orange'), (2, 'pear'), (3, 'peach')]
sorted()
函数时,原列表不会被修改,而是返回一个新的已排序的列表。lambda
表达式用来创建匿名函数,可用于快速定义简单的函数。在排序时, key
参数通常使用 lambda
表达式来指定按哪个元素进行排序。sort()
方法。与 sorted()
函数类似,sort()
方法也有 key
和 reverse
两个参数。