← Все вопросы

Как найти ключ с максимальным значением в словаре?

Задан 6 месяцев назад881 просмотров3 ответа
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).

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект