【问题标题】:sort a 2D list first by 1st column and then by 2nd column首先按第 1 列然后按第 2 列对 2D 列表进行排序
【发布时间】:2014-09-22 15:42:48
【问题描述】:

我正在尝试找到一种对二维列表进行排序的好方法,首先按第一个值,然后按第二个值。

我认为一个例子是最好的 如果我有清单

[[1,4],
[2,7],
[10,1],
[1,2],
[10,6]
[2,1]]

我希望是这样排序的

[[1,2],
[1,4],
[2,1],
[2,7],
[10,1],
[10,6]]

【问题讨论】:

    标签: python list sorting


    【解决方案1】:
    l=[[1,4],
    [2,7],
    [10,1],
    [1,2],
    [10,6],
    [2,1]]
    print(sorted(l,key=lambda x: (x[0],x[1]))) # use lambda to sort by "x[0]"-> first element of the sublists or x[1] -> second element, if its a tie
    [[1, 2], [1, 4], [2, 1], [2, 7], [10, 1], [10, 6]]
    

    或者只是 sorted(l)l.sort(),因为您的元素会自然排序。

    一个更好的例子是仅按第二个值排序:

    print(sorted(l,key=lambda x: (x[1])))
    [[10, 1], [2, 1], [1, 2], [1, 4], [10, 6], [2, 7]]
    

    【讨论】:

      猜你喜欢
      • 2011-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-30
      • 1970-01-01
      • 2021-05-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多