Python 基础教程

Python 高级教程

Python 相关应用

Python 笔记

Python FAQ

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/python-list-sort.html

Python 列表的排序

Python 列表 list 详解 Python 列表 list 详解


Python中列表排序操作,主要有两种方式,一种是通过内置函数sorted,另一种是通过内置类list的sort方法。

内置函数sorted()


Python在内置模块builtins中提供了可供排序使用的内置函数sorted,函数语法如下:

def sorted(*args, **kwargs):

说明:

sorted函数是一个稳定排序, 底层用的是归并排序算法。默认是一个升序排序。

参数:

  • 第一个参数是可迭代的数据对象,列表、元组或字符串。
  • 参数key,用于指定一个函数,这个函数用于从每个元素中提取一个用于比较的关键字。默认值为None。
  • 参数reverse,是一个bool值,如果设置为True,列表元素将被反向排列。默认为False。

返回值:

函数返回排序完之后的新的列表。

示例

>>> sorted([1, 8, 7, 1, 5, 7, 4, 7, 0])
[0, 1, 1, 4, 5, 7, 7, 7, 8]

# 字符转化为小写之后再比较,str.lower为内置类str的lower方法
>>> sorted('Jeff Dean', key=str.lower)
[' ', 'a', 'D', 'e', 'e', 'f', 'f', 'J', 'n']

# 升序之后,再反转
>>> sorted(('b', 'e', 'l', 'g', 'i', 'u', 'm'), reverse=True)
['u', 'm', 'l', 'i', 'g', 'e', 'b']

内置类list的sort()方法


Python在内置模块builtins内置类list中提供了排序使用的sort方法,函数语法如下:

def sort(self, key=None, reverse=False):

说明:

和内置函数sorted一样,也是稳定排序,底层用的归并排序实现,参数的设计也是一样的,最大的区别是sorted函数可以理解为泛化的,因为可以排序除了列表之外的其他可迭代数据对象(如字符串、元组等),而list的sort方法只是对列表的排序。

参数:

  • 参数key,用于指定一个函数,这个函数用于从每个元素中提取一个用于比较的关键字。默认值为None。
  • 参数reverse,是一个bool值,如果设置为True,列表元素将被反向排列。默认为False。

返回值:

返回None,原列表变为排序之后的状态。

示例

lst1 = [1, 8, 6, 1, 8, 4, 8, 8, 8, 9]
lst1.sort()
print(lst1)

lst2 = ['p', 'o', 'r', 't', 'u', 'g', 'a', 'l']
lst2.sort(reverse=True)
print(lst2)

lst3 = ['L', 'a', 'r', 'r', 'y', ' ', 'P', 'a', 'g', 'e']
lst3.sort(key=str.upper)
print(lst3)

输出结果为:

[1, 1, 4, 6, 8, 8, 8, 8, 8, 9]
['u', 't', 'r', 'p', 'o', 'l', 'g', 'a']
[' ', 'a', 'a', 'e', 'g', 'L', 'P', 'r', 'r', 'y']
sort()`方法、使用自定义排序函数和使用第三方库`numpy`的排序方法。###方法4:使用第三方库numpy如果你处理的是数值数据,可 ...
###方法一:使用sorted()函数这是Python内置的函数,用于对列表进行排序。cmp\_to\_key()进行自定义比较函数排序在P ...
在Python中,你可以使用多种方式对列表进行排序,这些方式包括内置的排序函数、自定义排序函数、第三方库等。###使用第三方库pandas如 ...
下面我将介绍四种常见的方法:使用内置的`sorted()`函数、使用`list.使用`sorted()`函数对字符串列表进行排序,它将返回一 ...
我将介绍以下几种常见的排序方法,并为每种方法提供详细的步骤流程、示例代码和最后的对比。示例代码:###对比总结*`sorted()`函数:返 ...