【问题标题】:How to sort list containing lists, with 2 refs [duplicate]如何使用2个参考对包含列表的列表进行排序[重复]
【发布时间】:2026-02-22 18:35:01
【问题描述】:

我有一个这样的列表 [[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]]

【问题讨论】:

    标签: python python-3.x list sorting


    【解决方案1】:

    你可以这样做:

    a = [[2, 1], [0, 3], [1, 2], [2, 5], [1, 4]]
    
    a.sort(key= lambda x:x[0])
    a.reverse()
    
    print(a)
    

    reverse=True on .sort() 反转列表但具有相同值的项目不排序。

    或更简单的

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

    【讨论】:

    • reverse=True on .sort() reverse the list but the items with same value are sorted in ascending order
    【解决方案2】:

    你可以试试这个代码:

    ls = [[2, 1], [0, 3], [1, 2], [2, 5], [1, 4]]
    ls_sorted = sorted(ls, key=lambda x: (x[0],x[1]), reverse=True)
    print(ls_sorted)
    

    输出:

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

    【讨论】:

      最近更新 更多