如何使用 Python 内置函数 sorted() 对列表进行排序?
发布时间:2023-05-31 00:30:09
Python 中内置的 sorted() 函数是用来对列表进行排序的。该函数可以按照升序或降序对列表进行排序,也可以根据自定义规则对其进行排序。sorted() 函数不会改变原始列表的顺序,而是返回一个新列表,其中包含已排序的元素。
语法
sorted() 函数的语法如下:
sorted(iterable, key=None, reverse=False)
参数说明:
- iterable:需要排序的序列。可以是列表、元组、集合或其他任何包含元素的可迭代对象。
- key:指定一个将在列表中的每个元素上调用的函数,该函数返回排序时使用的关键字。默认值为 None。例如,如果要按列表中嵌套元组的第二个元素进行排序,则可以使用 key=lambda x: x[1]。
- reverse:设置为 True 将按降序排序。默认值为 False。
示例
下面是一些使用 sorted() 函数对列表进行排序的示例。
1. 将一个列表按升序排列:
fruits = ['banana', 'apple', 'orange', 'kiwi', 'pear'] sorted_fruits = sorted(fruits) print(sorted_fruits) # 输出: ['apple', 'banana', 'kiwi', 'orange', 'pear']
2. 将一个列表按降序排列:
fruits = ['banana', 'apple', 'orange', 'kiwi', 'pear'] sorted_fruits = sorted(fruits, reverse=True) print(sorted_fruits) # 输出: ['pear', 'orange', 'kiwi', 'banana', 'apple']
3. 将一个列表按列表中元素的长度排序:
fruits = ['banana', 'apple', 'orange', 'kiwi', 'pear'] sorted_fruits = sorted(fruits, key=lambda x: len(x)) print(sorted_fruits) # 输出: ['kiwi', 'pear', 'apple', 'banana', 'orange']
4. 将一个列表按其嵌套元组的第二个元素(数字)排序:
records = [('John', 12), ('Jane', 10), ('Bob', 15), ('Alice', 18)]
sorted_records = sorted(records, key=lambda x: x[1])
print(sorted_records)
# 输出: [('Jane', 10), ('John', 12), ('Bob', 15), ('Alice', 18)]
总结
在 Python 中使用 sorted() 函数可以对列表进行排序。该函数可以按照升序或降序对列表进行排序,也可以根据自定义规则对其进行排序。此外,sorted() 函数不会改变原始列表的顺序。要排序的列表可以是任何包含元素的可迭代对象,例如列表、元组或集合。比起手写排序函数,使用 Python 的内置函数能够节约代码,并减少出错的风险。
