按值按字符排序字典按键Python3

时间:2014-08-31 22:49:03

标签: python sorting dictionary

假设我有一本字典:

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)]

如何扭转决胜局操作?

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)]