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

时间:2018-07-16 10:32:41

标签: python

我正在尝试对字典进行排序,其中值是两个元素的列表,在这里我需要对第二个元素(一个数字)进行降序排序。然后,我希望密钥也按降序排列。我以为这样就可以了。

users = sorted(users.items(), key=lambda x: (x[1][1], x[0]), reverse=True)

,并且列表按编号的降序排列时,只要有平局,名称仍按升序排列。我应该以不同的方式处理它吗?

1 个答案:

答案 0 :(得分:1)

至少对我来说,您的代码可以按预期工作:

users = {"a": (0, 0), "b": (0, 1), "c": (0, 1)}
sorted(users.items(), key=lambda x: (x[1][1], x[0]), reverse=True)
[('c', (0, 1)), ('b', (0, 1)), ('a', (0, 0))]

它首先按第二个位置的值排序,如果是平局,则按键排序。