我有以下字典:
fruits = {
"apple": 5,
"Apple": 5,
"orange": 5,
"strawberry": 3,
"blueberry": 1
}
我需要打印出具有最高值的两个键的列表。必须使用大写字母优先于小写字母的字母来按字母顺序AZ来打破关系。按次数运行以下排序,但不会中断联系:
popular_fruits = sorted(fruits, key=fruits.get, reverse=True)
print(popular_fruits[0:2])
我该怎么做?
您可以使用如下形式:
popular_fruits = sorted(fruits, key=lambda x: (-fruits[x], x))
print(popular_fruits[0:2])
编辑:
之前的否定fruits[x]
用于反转递减的数字顺序,在平局的情况下,该顺序由元组的第二个参数确定(按字母顺序)。
一个人不能简单地使用sorted(fruits, key=lambda x: (fruits[x], x), reverse=True)
它,因为它会颠倒两个元组元素的顺序,但是我们只需要对第一个元素进行排序。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句