Skip to main content
 首页 » 编程设计

python之如何按python中两个轴的最大值对列表进行排序

2025年05月04日12cyq1162

我想按列表中每个元素的第 0 个和第 1 个索引中的最大值对列表进行排序。

例如,如果我有这样一个列表:

[[2,1,2], 
 [0,3,9], 
 [1,2,9], 
 [1,1,2], 
 [3,2,7]] 

排序后应该是这样的:

[[0,3,9], 
 [3,2,7], 
 [2,1,2], 
 [1,2,9], 
 [1,1,2]] 

那么执行此操作的有效方法是什么?

我更喜欢使用 numpy,但也欢迎使用其他解决方案。

请您参考如下方法:

取前两列的逐行最大值,argsort,然后倒序得到降序。

您没有指定任何决胜局,因此这与您想要的输出不匹配。换句话说,您的问题没有唯一的解决方案。

res = A[A[:, :2].max(1).argsort()[::-1]] 
 
array([[3, 2, 7], 
       [0, 3, 9], 
       [1, 2, 9], 
       [2, 1, 2], 
       [1, 1, 2]])