如何按特定顺序打印键值字典对?

时间:2018-06-07 15:15:55

标签: python dictionary

我正在尝试从字典中打印键值对,其值按降序排列。问题是,如果多个值相同,则键必须按字母顺序排列。

d = {'you':2,'hi': 2, 'how': 1, 'are':2}

我需要回复:

are 2
hi 2
you 2
how 1

1 个答案:

答案 0 :(得分:3)

您可以将sorted与自定义功能配合使用。注意我们使用第1项的负数(即值)来表示降序值,并使用第0项(即键)的正数来升序键。

d = {'you': 2, 'hi': 2, 'how': 1, 'are': 2}

res = dict(sorted(d.items(), key=lambda x: (-x[1], x[0])))

print(res)

{'are': 2, 'hi': 2, 'you': 2, 'how': 1}

要进行打印,请通过dict.items

进行迭代
for k, v in d.items():
    print(k, v)