[英]Sorting a Dictionary by Value then Alphabetically by Key Python3
假設我有一個字典:
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)]
如何扭轉決勝局的操作?
你可以使用這個調用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)]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.