Python的sorted()
函数是用于对可迭代对象(如列表、元组、字符串等)进行排序的内置函数,返回一个新的排序列表且不修改原数据。 关键亮点:支持自定义排序规则(key
参数)、升序/降序控制(reverse
参数),并兼容多种数据类型(字典、集合等)。
-
基本用法
直接传入可迭代对象即可默认升序排序。例如对列表[3, 1, 2]
排序会返回[1, 2, 3]
,字符串会被拆分为字符列表排序。 -
控制排序方向
通过reverse=True
实现降序。如sorted([3, 1, 2], reverse=True)
返回[3, 2, 1]
。 -
自定义排序规则
使用key
参数指定排序依据。例如按字符串长度排序:sorted(["apple", "pie"], key=len)
返回["pie", "apple"]
;对字典按键或值排序需结合.items()
和lambda
。 -
复杂对象排序
支持对嵌套结构(如元组列表、对象列表)排序。例如按学生年龄排序:sorted(students, key=lambda x: x["age"])
。 -
稳定性与性能
Python的排序是稳定的,相同键值元素保持原始相对顺序。对于大规模数据,key
函数应尽量高效。
总结:sorted()
灵活且易用,适用于大多数排序场景。若需原地排序,可使用列表的.sort()
方法。合理利用key
和reverse
能高效处理复杂需求。