📜  pyhton 内置排序 - Python (1)

📅  最后修改于: 2023-12-03 15:33:50.756000             🧑  作者: Mango

Python 内置排序

简介

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(),分别用于返回新的排序后的列表和在原列表上进行排序。排序方式可以通过关键字参数进行指定,包括排序函数和是否降序排列。