sorted Python · 内置函数
`sorted` 返回一个排序后的新列表,原列表不变。就像给许多张在桌上随便排列的扑克牌拍了照,然后在照片上给这堆牌重新排序。至于桌上原本那摊牌,其实从头到尾都没有动过。
怎么用
sorted(可迭代对象) sorted(可迭代对象, reverse=True) # 降序 sorted(可迭代对象, key=函数) # 自定义排序规则
小例子
数字 = [3, 1, 4, 1, 5] 排序后 = sorted(数字) print(排序后) print(数字) # 原列表不变
运行结果
[1, 1, 3, 4, 5] [3, 1, 4, 1, 5]
对比:列表自带的 sort 方法会修改原列表
数字 = [3, 1, 4, 1, 5] 数字.sort() print(数字) # 原列表被修改 `sorted` 不会修改原列表,更适合需要保留原数据的场景。
常见使用场景
1. 对数字、字符串排序:
单词 = ["banana", "apple", "cherry"]
print(sorted(单词)) # ['apple', 'banana', 'cherry']
2. 按自定义规则排序:
学生 = [("小明", 18), ("小红", 16), ("小刚", 20)]
按年龄排序 = sorted(学生, key=lambda x: x[1])
print(按年龄排序)
3. 降序排序:
数字 = [3, 1, 4]
print(sorted(数字, reverse=True)) # [4, 3, 1]
提醒:- `sorted` 返回新列表,不会改变原可迭代对象。 - `key` 参数可以指定一个函数,用于提取比较的关键字。 - `reverse=True` 表示降序。 - 如果可迭代对象中有不可比较的类型,会报错。
官方文档:https://docs.python.org/zh-cn/3/library/functions.html#sorted
在代码里遇到不认识的词?打开代码点读机,点一下就懂 → ← Python全部词条