Python list.sort() 方法详解:参数、示例与注意事项

小林子
小林子
发布时间:2026-10-16| 6人浏览过
原创

本文详细介绍 Python 中 list.sort() 方法的具体使用。涵盖基础语法、key 参数指定权值排序、reverse 参数控制升降序,以及原地修改列表、类型一致性检查等关键注意事项。通过代码示例展示数字、字符串及混合类型的排序行为,帮助开发者准确掌握列表排序技巧。

描述

list.sort() 是 Python 内置的列表方法,用于对当前列表进行原地排序。该方法执行后不返回任何值(即返回 None)。

语法


list.sort(key=function, reverse=boolean)

名称 说明 备注
list 列表名称
key=function 列表元素权值参数 可省略的参数。省略时列表排序不考虑元素的权值
reverse=boolean 排序规则参数 可省略的参数。省略时reverse默认值False

返回值:该函数直接在原列表上进行排序操作,不返回新的列表对象。

使用示例

1. 所有参数都省略

当调用 sort 函数且省略所有参数时,默认对原列表进行升序排序:

1. 若列表元素为数字,则按数值大小进行排序;

2. 若列表元素为字符串,则按字母表顺序(字典序)进行排列。


>>> _list_a = [1, 34, 21, 4]
>>> _list_a.sort()    #对元素是数字的列表进行排序
>>> _list_a
[1, 4, 21, 34]
 
>>> _list_b = ['Huawei', 'Chinasoft', 'CASC', 'Alibaba', 'SoftStone', 'Tencent']
>>> _list_b.sort()    #对元素是字符串的列表进行排序
>>> _list_b
['Alibaba', 'CASC', 'Chinasoft', 'Huawei', 'SoftStone', 'Tencent']

2. 指定 key 参数

key 参数用于为列表中的每个元素指定一个排序依据(权值)。其值为一个函数名,该函数返回的值将作为排序的基准。

例如,若需按字符串长度对字符串列表进行排序,可将 len 函数作为 key 参数传入:

以下示例展示了分别不指定权值和指定权值对两个相同列表进行排序的结果。


>>> _list_c = ['Beijing', 'Xi\'an', 'Taiyuan', 'Taipei', 'Hongkang']
>>> _list_d = ['Beijing', 'Xi\'an', 'Taiyuan', 'Taipei', 'Hongkang']
>>> _list_c.sort()            #不指定权值
>>> _list_d.sort(key=len)     #指定权值
>>> _list_c
['Beijing', 'Hongkang', 'Taipei', 'Taiyuan', "Xi'an"]
>>> _list_d
["Xi'an", 'Taipei', 'Beijing', 'Taiyuan', 'Hongkang']    #按照元素的长度作为权值的排序结果

可以看出,_list_d 是按照元素长度进行排序的,而非按字母表顺序。

3. 指定 reverse 参数

reverse 参数用于控制排序顺序。当省略 reverse 参数或 reverse=False 时,列表按升序排列;当 reverse=True 时,列表按降序排列:


>>> _list_a = [13, 45, 23, 66]
>>> _list_b = [13, 45, 23, 66]
>>> _list_a.sort()    #默认升序排序
>>> _list_b.sort(reverse=True)    #降序排序
>>> _list_a
[13, 23, 45, 66]
>>> _list_b
[66, 45, 23, 13]

提示:当同时指定 key 和 reverse 参数时,sort 函数会先根据 key 指定的权值进行排序,再根据 reverse 参数确定是升序(False)还是降序(True)。

注意事项

1. sort 函数会改变原列表顺序

使用 sort 函数时需注意,该操作会直接修改原列表的顺序,而不是创建副本后排序并返回副本。


>>> _list_a = [1, 34, 21, 4]
>>> _list_a.sort()
>>> _list_a
[1, 4, 21, 34]

从上述代码可以看出,_list_a 本身的顺序在调用 sort 后已发生变化。

2. 列表元素类型不一致

当列表中所有元素属于同一类型时,sort() 函数能正常工作。在某些情况下,即使类型不同(如整型和浮点型),只要它们之间支持自动类型转换,排序也能正常进行:


>>> list_a = [23, 21.2, 22, -67.6]
>>> list_a.sort()
>>> list_a
[-67.6, 21.2, 22, 23]

然而,当元素类型之间无法互相转换时(例如整数与字符串混合),Python 会抛出错误,例如:


>>> a_list = [1, 3, '5', 2]
>>> a_list.sort()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: '<' not supported between instances of 'str' and 'int'

3. Python 早些版本

在 Python 2 中,sort 函数还包含一个 cmp 参数。

cmp -- 可选参数,如果指定了该参数,将使用该参数指定的方法进行排序。

到此这篇关于 Python list sort 方法的具体使用的文章就介绍到这了,更多相关 Python list sort 内容请搜索本站以前的文章或继续浏览下面的相关文章,希望大家以后多多支持本站!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。