二维数组sort从大到小排序
时间: 2024-09-21 18:08:00 浏览: 56
二维数组的`sort()`函数通常是针对一维数组或者可以转换成一维数据结构的情况进行排序的,比如整型或浮点数数组。对于二维数组,如果你想按某列的值从大到小排序,你需要先将其转置为一维数组,然后对这行或列的数据进行降序排序。
在Python中,如果你有一个二维列表,你可以这样做:
```python
# 假设我们有这样一份二维列表
data = [[5, 3], [7, 1], [1, 9], [4, 6]]
# 首先,我们需要获取第二列的值并创建一个新的列表
values = [row[1] for row in data]
# 使用内置的sorted()函数,设置reverse=True实现降序排列
sorted_values = sorted(values, reverse=True)
# 然后根据新的索引重新构建二维数组
sorted_data = [[data[i][0]] + [sorted_values[i]] for i in range(len(data))]
print(sorted_data)
```
如果是在Java中,可以借助流(Stream)和Collectors来实现类似的操作:
```java
import java.util.Arrays;
import java.util.Comparator;
List<int[]> data = Arrays.asList(new int[][]{{5, 3}, {7, 1}, {1, 9}, {4, 6}});
int[] values = data.stream().mapToInt(arr -> arr[1]).toArray();
int[] sortedValues = Stream.of(values).sorted(Comparator.reverseOrder()).toArray();
List<int[]> sortedData = data.stream()
.map(arr -> new int[]{arr[0], sortedValues[arrIndex]})
.collect(Collectors.toList());
```
阅读全文