我想按列表中每个元素的第 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]])
