首先按第1列排序2D列表,然后按第2列排序

时间:2014-07-30 20:27:50

标签: python list sorting

我试图找到一种很好的方法来排序2d列表,首先是第1个值,然后是第2个值。

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

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

我希望它会像这样排序

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

1 个答案:

答案 0 :(得分:16)

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)的{​​{1}},因为您的元素会自然排序。

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

l.sort()