【发布时间】:2014-09-18 06:29:31
【问题描述】:
假设有一本字典
d = {"P1":77,"P2":89,"P3":77}
我想以下面的形式打印结果
P2:89
P1:77
P3:77
即按字典值排序,对于相等的值,第一个在前(即 P1 在 P3 之前)
我做了以下
import collections
od = collections.OrderedDict(sorted(d.items(), key=lambda x:x[1], reverse=True))
给了
OrderedDict([('P2', 89), ('P3', 77), ('P1', 77)])
如何在 P3 之前获得 P1?
【问题讨论】:
-
您的问题的前提是字典本身保持顺序,这是不正确的。对于要排序的键,您需要从一开始就使用ordereddict
-
我认为你是对的......这样就可以了
-
您可能希望使用排序集合recipe 来维护排序集合,而不是不断地使用新元素进行排序。
标签: python sorting python-2.7 dictionary