python 多次排序
时间: 2024-09-28 19:02:20 浏览: 25
在Python中,如果你想对一个列表进行多次排序,有几种常见的方法:
1. **连续排序**:如果你只是简单地想在一个已经排序的基础上再进行一次排序,比如先按一个键排序,然后立即按另一个键排序,可以直接在`sort()`函数内部指定第二个关键字。例如:
```python
data = [(4, 'd'), (2, 'a'), (3, 'c')]
data.sort(key=lambda x: x[0]) # 先按数字排序
data.sort(key=lambda x: x[1]) # 再按字母排序
```
2. **利用临时变量**:如果你需要保留原始顺序并进行多次不同的排序,可以创建一个新列表来进行操作,不会影响原始数据:
```python
original_data = [..] # 原始数据
temp_data = sorted(original_data, key=lambda x: x[0]) # 第一次排序
final_data = sorted(temp_data, key=lambda x: x[1]) # 再次排序
```
3. **使用`sorted()`函数**:如上所述,`sorted()`函数会返回一个新的排序好的列表,这样可以在不影响原列表的情况下进行多次排序:
```python
data = [...]
for key in [key1, key2]: # 使用不同的键
data = sorted(data, key=key)
```
注意每次排序都是独立的,不会互相影响,除非你在排序过程中改变了元素的位置。
阅读全文