Python按词降序排序字典,然后按字母顺序排列

Mat*_*ead 4 python sorting

我有以下字典:

fruits = {
    "apple": 5,
    "Apple": 5,
    "orange": 5,
    "strawberry": 3,
    "blueberry": 1
}
Run Code Online (Sandbox Code Playgroud)

我需要打印出具有最高值的两个键的列表.关系需要按字母顺序打开AZ,大写字母优先于小写字母.通过计数运行以下排序,但不会破坏关系:

popular_fruits = sorted(fruits, key=fruits.get, reverse=True)
print(popular_fruits[0:2])
Run Code Online (Sandbox Code Playgroud)

我怎么能做到这一点?

tar*_*ras 8

你可以使用这样的东西:

popular_fruits = sorted(fruits, key=lambda x: (-fruits[x], x))
print(popular_fruits[0:2])
Run Code Online (Sandbox Code Playgroud)

编辑:

之前的否定fruits[x]用于反转递减的数字排序,并且在平局的情况下,顺序由元组的第二个参数(按字母顺序)确定.

不能简单地使用sorted(fruits, key=lambda x: (fruits[x], x), reverse=True)它,因为它将反转两个元组元素的排序,但我们只需要为第一个元素执行它.