Python 排序指南:sorted() 函数详解
排序基础
排序是编程中最常用的算法之一。Python 提供了内置的 sorted() 函数,可以方便地对各种可迭代对象进行排序。
自定义排序
sorted() 是一个高阶函数,可以接收 key 参数来自定义排序规则:
key 函数会应用于每个元素,然后根据返回的结果进行排序。
字符串排序
默认情况下,字符串按 ASCII 码值排序:
要忽略大小写排序,可以使用 str.lower 或 str.upper 作为 key 函数:
反向排序
使用 reverse=True 参数可以实现降序排序:
复杂对象排序
对于包含元组或字典等复杂对象的列表,可以自定义 key 函数:
现代 Python 排序技巧
- 使用 lambda 表达式 简化 key 函数:
- 使用 operator 模块 提高效率:
- 多级排序:
性能考虑
- 对于大型数据集,
key函数的性能会影响排序速度 - 如果需要多次排序,可以考虑使用
functools.cmp_to_key将老式的比较函数转换为 key 函数 - 对于稳定性要求高的场景,Python 的排序算法是稳定的(相等元素的相对位置不变)
总结
Python 的 sorted() 函数提供了强大的排序功能,通过 key 和 reverse 参数可以实现各种复杂的排序需求。现代 Python 还提供了更简洁的写法(如 lambda 表达式)和更高效的实现(如 operator 模块),使得排序操作更加灵活高效。

