深入理解 Python 中的排序函数

深入理解 Python 中的排序函数
最新回答
白日依山尽

2026-03-27 05:30:13

深入理解 Python 中的排序函数

Python 中提供了一系列排序函数,包括 sort 和 sorted,本文将主要介绍 Python3 版本的这些函数。

在具体探讨之前,我们先了解 sort 和 sorted 函数的区别。

sort 函数原型为:list.sort(key=None, reverse=False);sorted 函数原型为:sorted(iterable, key=None, reverse=False)。

在参数 key 上,sort 函数接收一个函数,此函数只接受一个元素,返回值表示此元素的权值;sorted 函数同样接收一个函数,此函数同样只接受一个元素,返回值用于决定排序顺序。

接受 False 或者 True 表示是否逆序排序。

实战演练包括对不同 Python 类型进行排序,如 list、tuple、dict。

在 list 类型中,sort 是原地排序,而 sorted 则生成新的排序后的列表。

对于 tuple 类型,没有内置 sort 函数,只能使用 sorted 函数,且返回值为 list 类型。

在 dict 类型中,如果不使用 key 参数,则默认按照键进行排序,使用 key 参数可以按照自定义规则排序。

进阶篇主要探讨自定义规则排序。自定义排序主要通过 key 参数实现,可以使用 lambda 函数或 itemgetter 方法实现单一或多重字段排序。

对于自定义类排序,原理与内置类型相似,需要通过 key 参数指定排序规则。使用 operator 模块的 itemgetter 或 attrgetter 方法进行排序。

如果需要实现复杂排序,如先按照年龄升序,再按照年级降序排序,可以使用 lambda 函数结合排序函数实现。

在 Python3 中,cmp 参数不再支持,但可以通过定义比较函数实现排序。

推荐使用 lambda 函数定义排序规则,代码简洁且易于理解。

参考资源:

docs.python.org/3.7/lib...

docs.python.org/3/libra...

jb51.net/article/147635...