39.Python 中 list.sort() 与 sorted() 的本质区别与最佳实践
在 Python 开发中,排序几乎是无法回避的需求。你或许知道 list.sort()
和 sorted()
都能用来排序,但你真的了解它们的差异吗?本篇文章将带你从底层原理、性能优化、使用场景到高阶技巧,全面掌握这对常见却容易误用的排序工具。
🧠 基础对比:表象上的不同
特性 | list.sort() | sorted() |
---|---|---|
是否修改原列表 | ✅ 是(原地排序) | ❌ 否(返回新列表) |
返回值 | None | 排序后的新列表 |
适用对象类型 | 仅适用于 list 类型 | 适用于所有可迭代对象(如 list、tuple、dict、str) |
可读性与链式使用 | 不支持链式使用 | ✅ 可与其他操作链式组合 |
是否保留原数据顺序 | ❌ 否 | ✅ 是 | </