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

列表排序——sort函数

发布时间:2023-05-21 05:57:00

列表是 Python 中最常用的数据类型之一,它允许我们存储多个数据项,并且可以动态添加或删除其中的元素。当涉及到排序列表时,Python 提供了一个内置函数 sort()。这个函数可以使我们方便地对列表进行排序,从而使数据更容易被理解和处理。

sort() 函数和列表方法 .sort() 的作用和用法相同。它可以用来对任何可迭代对象进行排序,例如元组和字典等。

sort() 函数可以使用不同的参数来控制排序的方式。下面介绍常见的几种参数:

reverse 参数

当 reverse 参数设置为 True 时,sort() 函数将按相反的顺序对列表进行排序。默认情况下,reverse 参数为 False,即升序排序。

示例:

>>> a = [5, 2, 8, 1, 6]
>>> a.sort(reverse=True)
>>> print(a)
[8, 6, 5, 2, 1]

key 参数

当我们需要按照某个特定规则对列表进行排序时,就可以使用 key 参数。key 参数需要传入一个函数,这个函数将用于为每个元素生成一个用于排序的值。

例如,在对字符串列表进行排序时,我们可以对每个字符串计算其长度,然后按照长度进行排序。这可以通过定义一个 lambda 函数来实现。

示例:

>>> b = ['aa', 'b', 'ccc', 'dd']
>>> b.sort(key=lambda x: len(x))
>>> print(b)
['b', 'aa', 'dd', 'ccc']

cmp 参数

在 Python 3.x 中,cmp 参数已经被移除。在 Python 2.x 中,cmp 参数可以用于指定一个自定义的比较函数来对列表进行排序。

示例:

>>> def cmp(a, b):
...     if a < b:
...         return -1
...     elif a > b:
...         return 1
...     else:
...         return 0
...
>>> c = [5, 2, 8, 1, 6]
>>> c.sort(cmp=cmp)
>>> print(c)
[1, 2, 5, 6, 8]

sort() 函数可对元组和字典等类型同样有效,下例展示字典和元组的排序:

示例:

>>> d = {'a': 1, 'b': 2, 'c': 3}
>>> d = sorted(d.items(), key=lambda x: x[1])
>>> print(d)
[('a', 1), ('b', 2), ('c', 3)]
>>> e = [('a', 1), ('c', 3), ('b', 2)]
>>> e.sort()
>>> print(e)
[('a', 1), ('b', 2), ('c', 3)] 

总的来说,sort() 函数是 Python 内置的一种用于排序的函数,它能够对列表或其他可迭代对象进行排序。sort() 函数使用起来灵活方便,能够满足各种排序需求的要求。