2016-04-23 26 views
1

我有这样prob = {('be', 'limited'): 0.004, ('the', 'book'): 0.000432, ......}如何排序其键为元组并且值为int的字典?

一个字典排序我用

for k, v in sorted(prob, key = lambda x: x[1], reverse = True): 
    print k, v 

,但它并没有给结果。 (它只是给了我元组..)我想根据价值对字典进行排序。

回答

2

您应该致电sortedprob.items(),否则在排序发生后它只返回键。

sorted(prob.items(), key = lambda x: x[1], reverse = True) 

你可以把它存入collection.OrderedDict它会记住所加入项目的顺序:

>>> dct = sorted(prob.items(), key=lambda x: x[1], reverse=True) 
>>> result = collections.OrderedDict(dct) 
+0

太感谢你了。 :) –