【问题标题】:How to sort list in python with different indexes based on condition?python - 如何根据条件对具有不同索引的python列表进行排序?
【发布时间】:2020-06-08 13:19:13
【问题描述】:

我是 python 新手,我想按第一个索引以非递减顺序对 python 中的列表列表进行排序,但如果第一个索引包含相等的值,则按第二个索引按降序排序

[[3,3],[3,2],[1,3]]

输出[[1,3],[3,3][3,2]]

ex2[[7,0],[4,4],[7,1],[5,0],[6,1],[5,2]]

输出[[4, 4], [5, 2],[5, 0], [6, 1], [7, 1],[7, 0]]

在c++中我使用这个函数作为键

   static bool lessThan(vector<int> &l , vector<int> &r)
{

    if (r[0] == l[0])
        return l[1]>r[1];

        return l[0]<r[0];
}

但在 python 键函数上有不同的行为

【问题讨论】:

    标签: python python-3.x sorting


    【解决方案1】:

    由于您只是对数字进行排序,因此您可以走捷径,只取元组中第二个元素的负数:

    l = [[3,3],[3,2],[1,3], [3,5], [3,0], [3, -1]]
    
    sorted(l, key=lambda x: (x[0], -x[1]))
    
    # [[1, 3], [3, 5], [3, 3], [3, 2], [3, 0], [3, -1]]
    

    【讨论】:

      猜你喜欢
      • 2018-07-08
      • 2016-07-13
      • 1970-01-01
      • 1970-01-01
      • 2022-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多