如何先按值然后按键对字典排序

时间:2018-07-20 15:40:54

标签: python python-3.x sorting dictionary

我有字典

d={'g':1,'w':1,'h':3}

首先,我想按键对值进行排序,所以最终输出应如下所示

d={'h':3,'g':1,'w':1}

2 个答案:

答案 0 :(得分:2)

从Python 3.6开始,命令是有序的,但是要确保人们需要使用OrderedDict模块中的collections

from collections import OrderedDict

d={'g':1,'w':1,'h':3}

o = OrderedDict(sorted(((k, v) for k, v in d.items()), key=lambda v: (-v[1], v[0])))
print(o)

输出:

OrderedDict([('h', 3), ('g', 1), ('w', 1)])

答案 1 :(得分:1)

使用Python 2,您可以通过自定义cmp函数执行此操作:

prop