首页 > 解决方案 > 如何使用 2 个参考对包含列表的列表进行排序

问题描述

我有一个这样的清单 [[2, 1], [0, 3], [1, 2], [2, 5], [1, 4]]

所以我想根据第一个元素对这个列表进行排序,但是如果 2 个项目的第一个元素相等,则根据第二个元素排序,我想以相反的顺序(递减顺序)

我用这个

arr.sort(key=lambda x: x[0], reverse=True)

但它的结果是 [[2, 1], [2, 5], [1, 2], [1, 4], [0, 3]]

我想要这样的结果

[[2, 5], [2, 1], [1, 4], [1, 2], [0, 3]]

标签: pythonpython-3.xlistsorting

解决方案


你可以这样做:

a = [[2, 1], [0, 3], [1, 2], [2, 5], [1, 4]]

a.sort(key= lambda x:x[0])
a.reverse()

print(a)

reverse=True.sort()反向列表中,但具有相同值的项目未排序。

或更简单

a = sorted(a, key=lambda x: (x[0],x[1]), reverse=True)

推荐阅读