如何使用元组的两个元素对元组列表进行排序?

时间:2016-04-28 06:02:33

标签: python list sorting tuples

我想按元组中的第一个元素排序,如果某些元组的第一个元素相等,则按第二个元素排序。 例如,我有[(5,1),(1,2),(1,1),(4,3)],我想获得[(1,1),(1,2),(4,3),(5,1)]

我怎样才能以pythonic的方式做到这一点?

4 个答案:

答案 0 :(得分:2)

d = [(5,1),(1,2),(1,1),(4,3)]
print(sorted(d,key=lambda x:(x[0],x[1])))

如果您希望更好地使用itemgetter

答案 1 :(得分:1)

import operator
l = [(5,1),(1,2),(1,1),(4,3)]
print(sorted(l, key=operator.itemgetter(0,1))

答案 2 :(得分:0)

您不需要指定key,因为您要对列表项本身进行排序。

>>> d = [(5,1),(1,2),(1,1),(4,3)]
>>> sorted(d)
[(1, 1), (1, 2), (4, 3), (5, 1)]

答案 3 :(得分:0)

请记住,已排序方法将返回一个列表对象。在这种情况下, d 仍然保持未分类。

如果你想排序d,你可以使用

>>>d.sort()

希望有所帮助