簡體   English   中英

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

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM