如何使用Python内置的sorted函数进行列表排序
发布时间:2023-05-27 16:19:32
Python内置的sorted函数是一种非常简单易用的方法,可以对列表进行排序。它允许用户自定义排序规则,也可以按默认方式排序。
对于大多数列表排序需求,sorted函数已经足够满足了。它接受三种参数:
1. 序列(sequence): 需要排序的列表、元组或其他序列。
2. key(可选):指定排序规则的函数(接受一个参数)。
3. reverse(可选):如果设置为True,则按降序排列。
以下是使用sorted函数进行列表排序的几个示例。
1. 普通排序
使用sorted函数进行简单排序
>>> mylist = [3, 2, 1, 4] >>> sorted_list = sorted(mylist) >>> print(sorted_list) [1, 2, 3, 4]
2. 反向排序
设置reverse=True以按降序排列。
>>> mylist = [3, 2, 1, 4] >>> sorted_list = sorted(mylist, reverse=True) >>> print(sorted_list) [4, 3, 2, 1]
3. 按长度排序
使用len作为关键字函数,可以按字符串或列表(或其他序列)的长度排序。
>>> mylist = ['cat', 'dog', 'elephant', 'mouse'] >>> sorted_list = sorted(mylist, key=len) >>> print(sorted_list) ['cat', 'dog', 'mouse', 'elephant']
4. 按自定义规则排序
有时您需要按自定义规则对列表进行排序。例如,将所有奇数排在偶数之前或按字典序排列。
以下代码使用一个lambda函数将奇数排在偶数之前:
>>> mylist = [3, 2, 1, 4, 7, 6, 5, 8] >>> sorted_list = sorted(mylist, key=lambda x: x % 2 == 0) >>> print(sorted_list) [3, 1, 7, 5, 2, 4, 6, 8]
以下代码使用一个lambda函数按字典序排列:
>>> mylist = ['cat', 'Dog', 'Elephant', 'ant'] >>> sorted_list = sorted(mylist, key=lambda x: x.lower()) >>> print(sorted_list) ['ant', 'cat', 'Dog', 'Elephant']
这里我们使用了一个小技巧。通过将字符串转换为小写字母,我们可以通过忽略大小写来排序。
sorted()函数是一个强大的工具,允许我们对列表进行各种各样的排序。可以按升序或降序排序,也可以按长度或其他自定义规则排序。这是Python编程的一个有力工具。
