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"])

掌握排序让数据处理更高效。