Python 排序 sort 与 sorted
Python 提供 sort() 和 sorted() 进行排序。
1. 基本用法
numbers = [3, 1, 4, 1, 5, 9, 2, 6]
# sorted() 返回新列表
sorted(numbers) # [1, 1, 2, 3, 4, 5, 6, 9]
# sort() 原地排序
numbers.sort() # numbers 变为 [1, 1, 2, 3, 4, 5, 6, 9]
2. 降序排序
sorted(numbers, reverse=True)
numbers.sort(reverse=True)
3. key 参数
# 按长度排序
words = ["apple", "hi", "banana"]
sorted(words, key=len) # ['hi', 'apple', 'banana']
# 字符串按长度+内容
sorted(words, key=lambda x: (len(x), x))
4. 多级排序
data = [
{"name": "Alice", "age": 25},
{"name": "Bob", "age": 30},
{"name": "Alice", "age": 20},
]
sorted(data, key=lambda x: (x["name"], x["age"]))
5. 保持稳定
# Python 排序是稳定的
sorted(data, key=lambda x: x["name"])
掌握排序让数据处理更高效。