列表排序——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() 函数使用起来灵活方便,能够满足各种排序需求的要求。
