我正在尝试从字典中打印键值对,其值按降序排列。问题是,如果多个值相同,则键必须按字母顺序排列。
d = {'you':2,'hi': 2, 'how': 1, 'are':2}
我需要回复:
are 2
hi 2
you 2
how 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)