我有以下字典:
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)
我怎么能做到这一点?
你可以使用这样的东西:
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)它,因为它将反转两个元组元素的排序,但我们只需要为第一个元素执行它.
| 归档时间: |
|
| 查看次数: |
5287 次 |
| 最近记录: |