首先按值然后按键对字典进行排序

时间:2020-09-30 10:40:46

标签: python

我在python中有一个字典,其中包含字符串键和整数值。我想按值排序,如果两个值相同,则按键对字典排序。 字典的一个例子。是:

{'Spain':3,'Morocco':1,'England':3,'canada':2}

排序后应该是

{'England':3,'Spain':3,'canada':2,'Morocco':1}

1 个答案:

答案 0 :(得分:0)

您可以尝试以下方法,该方法按字典的项对字典进行排序。
-item[1]按值降序排序,而item[0]按键升序排序。 由于sorted的结果是一个元组列表,我们需要使用dict()构造函数调用将其转换为dict。

d = {'Spain': 3, 'Morocco': 1, 'England': 3, 'canada': 2}
out = dict(sorted(d.items(), key=lambda item: (-item[1], item[0])))
print(out)

输出:

{'England': 3, 'Spain': 3, 'canada': 2, 'Morocco': 1}