2014-05-08 272 views
-4

我想按相反順序按值排序字典。 例如:[紅:2,藍:45,綠:100] 打印綠色100,藍色45,紅色2Python如何按相反順序按值排序字典

由於

+0

你忽略了包括任何實際的問題,這不是Python字典。請糾正這一點。 – jonrsharpe

+0

你可能會覺得這篇文章很有用:http://stackoverflow.com/questions/613183/python-sort-a-dictionary-by-value –

+0

你可以從上到下遍歷字典。 https://docs.python.org/2/c-api/dict.html第一個綠色框。 – surfmuggle

回答

1

使用排序功能。

d = dict(red=2, blue=45, green=100) 
sorted(d.items(), cmp=lambda a,b: cmp(a[1], b[1]), reverse=True)  
1
>>> from collections import OrderedDict 

>>> a = {"Red": 2, "Blue": 45, "Green": 100} 

>>> OrderedDict(sorted(a.items(), key=lambda x: x[1], reverse=True)) 
OrderedDict([('Green', 100), ('Blue', 45), ('Red', 2)]) 
0

您已經使用了Python標籤,但該詞典是不是有效的Python字典。這是正確的結構:

{"Red": 2, "Blue": 45, "Green": 100} 

所以,如果你想在這裏打出來是另一種方式:

mydic = {"Red": 2, "Blue": 45, "Green": 100} 
for w in sorted(mydic, key=mydic.get, reverse=True): 
    print w, mydic[w]