### Python 中的数据排序方法
在 Python 中,可以通过内置函数 `sorted()` 或列表对象的 `.sort()` 方法实现数据排序。以下是两种方式的具体介绍:
#### 使用 `sorted()` 函数
`sorted()` 是一个内置函数,能够返回一个新的已排序列表,不会修改原始数据结构。其语法如下:
```python
sorted(iterable, key=None, reverse=False)
```
- **iterable**: 可迭代的对象(如列表、元组等)。
- **key**: 自定义排序逻辑的函数,默认为 None。
- **reverse**: 排序方向,默认为 False 表示升序;如果设置为 True,则按降序排列。
示例代码:
```python
data = [3, 1, 4, 1, 5, 9]
result = sorted(data) # 升序排序
print(result) # 输出: [1, 1, 3, 4, 5, 9]
result_desc = sorted(data, reverse=True) # 降序排序
print(result_desc) # 输出: [9, 5, 4, 3, 1, 1]
```
#### 使用 `.sort()` 方法
`.sort()` 是列表的一个原地排序方法,会直接修改原有列表的内容而不创建新列表。它的参数与 `sorted()` 类似:
```python
list.sort(key=None, reverse=False)
```
示例代码:
```python
data = [3, 1, 4, 1, 5, 9]
data.sort() # 升序排序
print(data) # 输出: [1, 1, 3, 4, 5, 9]
data.sort(reverse=True) # 降序排序
print(data) # 输出: [9, 5, 4, 3, 1, 1]
```
#### 高级排序技巧:自定义键函数
当需要按照特定规则排序时,可以使用 `key` 参数指定一个函数来决定排序依据。例如,对于复杂数据类型的排序,可借助 `operator.itemgetter()` 提高效率[^1]。
示例代码:
```python
from operator import itemgetter
data = [('apple', 2), ('banana', 1), ('cherry', 3)]
# 按照第二个元素排序
result = sorted(data, key=itemgetter(1))
print(result) # 输出: [('banana', 1), ('apple', 2), ('cherry', 3)]
# 对字典中的值进行排序
dict_data = {'a': 3, 'b': 1, 'c': 2}
result_dict = dict(sorted(dict_data.items(), key=lambda x: x[1]))
print(result_dict) # 输出: {'b': 1, 'c': 2, 'a': 3}
```
#### Pandas 数据框中的排序
在数据分析场景下,通常会用到 Pandas 库对 DataFrame 进行排序。Pandas 的 `DataFrame.sort_values()` 和 `DataFrame.sort_index()` 方法提供了灵活的支持[^4]。
示例代码:
```python
import pandas as pd
df = pd.DataFrame({
'name': ['Alice', 'Bob', 'Charlie'],
'age': [25, 30, 22],
'score': [88, 95, 78]
})
# 按某一列排序
sorted_df = df.sort_values(by='age')
print(sorted_df)
# 多列联合排序
multi_sorted_df = df.sort_values(by=['age', 'score'], ascending=[True, False])
print(multi_sorted_df)
```
---
### 总结
Python 提供了多种方式进行数据排序,无论是简单的一维数组还是复杂的多维度表格数据,都能找到合适的工具完成任务。熟练掌握这些方法有助于提高开发效率并简化代码逻辑。
---