max
даст вам только одно наибольшее значение, а не верхние значения N. Также key=lambda ev: ev['Reward Poignet', 'Reward']
не будет работать в качестве ключа. Вам нужно передать ключевую функцию, чем использовать значения словарей для сравнения. Одним из способов было бы сделать max(epmaxinfos.items(), key=lambda x: x[1])
.
. Если вы хотите получить верхние значения N, используйте most_common
из collections.Counter
:
Возвращает список из n наиболее распространенных элементов и их количество от самых распространенных до наименьших. Если n опущено или None, most_common () возвращает все элементы в счетчике. Элементы с равным количеством упорядочены в порядке, в котором они встречаются:
Демо
from collections import Counter
d = {
"X coude":15 ,
"Z coude": 20,
"X poignet":25 ,
"Z poignet":30 ,
"X Main":70 ,
"Z Main": 10,
"Reward pied":12 ,
"Reward Tibia":14 ,
"Reward Cuisse":15,
"Reward appuiCuisse":16 ,
"Reward Tête":14 ,
"Reward Torse":87 ,
"Reward coude": 89,
"Reward poignet":10 ,
"Reward main":30 ,
"Reward bras":33 ,
"Reward":17 ,
"Reward knee":10
}
print(Counter(d).most_common(2))
Выход
[('Reward coude', 89), ('Reward Torse', 87)]
Если вам нужны только имена наград, распакуйте первый элемент в списке:
print([k for k, _ in Counter(d).most_common(2)])
# ['Reward coude', 'Reward Torse']