sort函数对二维数组
时间: 2025-01-03 13:27:20 浏览: 8
### 使用 `sort` 函数对二维数组进行排序
Python 中可以利用列表的内置 `sort()` 方法或内建函数 `sorted()` 来处理一维和多维数据结构。对于二维数组而言,可以通过指定关键字参数 key 和 reverse 参数来自定义排序逻辑[^1]。
下面展示了一个具体的例子,说明如何基于特定条件对二维数组执行原地排序:
```python
matrix = [
[3, 'apple', 9],
[2, 'banana', 8],
[1, 'cherry', 7]
]
# 基于第一个元素升序排列
matrix.sort(key=lambda row: row[0])
print(matrix)
# 输出:
# [[1, 'cherry', 7], [2, 'banana', 8], [3, 'apple', 9]]
```
如果希望按照多个字段组合的方式来进行排序,则可以在 lambda 表达式中返回元组作为比较键;当涉及到降序需求时,只需调整对应位置上的值为负数或其他方式实现反转效果[^2]。
例如,先依据第三列数值降序再按第二列字母表顺序升序最后考虑第一列的情况如下所示:
```python
import numpy as np
data = np.array([
[3, "a", 5],
[1, "b", 2],
[2, "c", 3],
])
index = np.lexsort((data[:, 1], -1 * data[:, 2]))
sorted_data = data[index]
print(sorted_data.tolist())
# 输出:
# [[2, 'c', 3], [1, 'b', 2], [3, 'a', 5]]
```
上述代码片段展示了两种不同的方法来完成复杂的排序操作——一种是纯 Python 的解决方案,另一种则是借助 NumPy 库提供的功能更强大的工具集。
阅读全文