← Все вопросы
Как найти ключ с максимальным значением в словаре?
16
В словаре {'a': 5, 'b': 9, 'c': 2} нужно найти ключ, у которого самое большое значение (и само значение тоже). Как покороче?
3 ответа
25
✓ Принятый ответ — помог автору
Через max с key:
d = {'a': 5, 'b': 9, 'c': 2}
best_key = max(d, key=d.get) # 'b'
best_val = d[best_key] # 9
max(d, ...) перебирает ключи, а key=d.get говорит сравнивать их не по самим ключам, а по значениям, которые d.get достаёт. Если максимальных несколько — вернётся первый встретившийся. Для минимума — то же самое с min.
8
max(d, key=d.get) даст ключ. Значение потом через d[ключ].
6
Или сразу пару: max(d.items(), key=lambda x: x[1]) -> ('b', 9).
Ваш ответ
Войдите, чтобы ответить на вопрос.