我想按元组中的第一个元素排序,如果某些元组的第一个元素相等,则按第二个元素排序。
例如,我有[(5,1),(1,2),(1,1),(4,3)]
,我想获得[(1,1),(1,2),(4,3),(5,1)]
我怎样才能以pythonic的方式做到这一点?
答案 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()
希望有所帮助