📅  最后修改于: 2023-12-03 15:33:50.756000             🧑  作者: Mango
Python 语言的内置排序函数包括 sorted()
和 list.sort()
。这两个函数均可用于对列表进行排序,区别在于:
sorted()
返回新的排序后的列表,原列表不发生变化;list.sort()
直接对原列表进行排序。排序的方式可以通过关键字参数进行指定,如果没有指定,则按照元素的升序排列。
sorted()
>>> a = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
>>> b = sorted(a)
>>> print(a)
[3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
>>> print(b)
[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
>>> c = ['apple', 'banana', 'cherry', 'date', 'elderberry']
>>> d = sorted(c, key=len)
>>> print(c)
['apple', 'banana', 'cherry', 'date', 'elderberry']
>>> print(d)
['date', 'apple', 'banana', 'cherry', 'elderberry']
list.sort()
>>> a = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
>>> a.sort()
>>> print(a)
[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
>>> c = ['apple', 'banana', 'cherry', 'date', 'elderberry']
>>> c.sort(key=len)
>>> print(c)
['date', 'apple', 'banana', 'cherry', 'elderberry']
内置排序函数均支持多个关键字参数:
sorted(iterable, *, key=None, reverse=False)
list.sort(*, key=None, reverse=False)
其中,key
表示排序时使用的函数,reverse
表示是否降序排列。
>>> a = ['apple', 'banana', 'cherry', 'date', 'elderberry']
>>> b = sorted(a, key=lambda x: x[1])
>>> print(b)
['banana', 'date', 'elderberry', 'apple', 'cherry']
>>> a = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
>>> a.sort(reverse=True)
>>> print(a)
[9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
>>> c = ['apple', 'banana', 'cherry', 'date', 'elderberry']
>>> c.sort(key=len, reverse=True)
>>> print(c)
['elderberry', 'banana', 'cherry', 'apple', 'date']
Python 语言的内置排序函数包括 sorted()
和 list.sort()
,分别用于返回新的排序后的列表和在原列表上进行排序。排序方式可以通过关键字参数进行指定,包括排序函数和是否降序排列。