假设我有一本字典:
h=[('a',5), ('f', 3), ('b',3), ('c',3), ('d',1), ('e',4) ]
我希望它排序如下:
[('a',5), ('e',4), ('b',3), ('c',3), ('f',3), ('d',1)]
我可以用Python 2解决这个问题:
sortedList= sorted(h.iteritems(),key=lambda(k,v):(-v,k))
我可以通过这样的方式在Python 3中非常接近:
import operator
sortedList =sorted(h.items(), key=operator.itemgetter(1,0) , reverse=True)
但它就像这样
[('a',5), ('e',4), ('f',3), ('c',3), ('b',3), ('d',1)]
如何扭转决胜局操作?
答案 0 :(得分:3)
您可以在python 3中使用此调用来排序函数:
sortedList = sorted(h, key=lambda k: (-k[1], k[0]))
这将得到与python 2排序相同的结果:
[('a',5), ('e',4), ('b',3), ('c',3), ('f',3), ('d',1)]