Подтвердить что ты не робот

Получить ключ dict по максимальному значению

Я пытаюсь получить ключ dict, значение которого является максимальным из всех значений dict.

Я нашел два способа, оба недостаточно элегантные.

d= {'a':2,'b':5,'c':3}
# 1st way
print [k for k in d.keys() if d[k] == max(d.values())][0]
# 2nd way
print Counter(d).most_common(1)[0][0]

Есть ли лучший подход?

4b9b3361

Ответ 1

Используйте параметр key для max():

max(d, key=d.get)

Демо:

>>> d= {'a':2,'b':5,'c':3}
>>> max(d, key=d.get)
'b'

Параметр key принимает функцию, и для каждой записи в iterable он найдет ту, для которой функция key возвращает максимальное значение.