欢迎访问宙启技术站
智能推送

如何使用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编程的一个有力工具。