Ключ к максимумам словаря в питоне - PullRequest
4 голосов
/ 21 июля 2011

У меня есть словарь, "оценки", из целых чисел, и я хочу найти ключ (ы) с наибольшим значением. Я использовал этот код:

key = max(scores, key=scores.get)

однако, это возвращает только один ключ. Как это связано со связями в наивысшей ценности? Я вернул только один номер. Что это в случае с галстуком? Как я могу получить все ключи с наибольшим значением? Спасибо за вашу помощь.

Ответы [ 4 ]

9 голосов
/ 21 июля 2011

Вы можете запустить следующее, например:

max_value = max(scores.values())
keys = [ i for (i,v) in scores.iteritems() if v == max_value ]

«ключи» теперь будут содержать все ключи, которые соответствуют максимальному значению.

1 голос
/ 21 июля 2011
max_value = max(scores, key=scores.get)
keys = [score for score in scores if scores[score] == max_value]
1 голос
/ 21 июля 2011
scores = dict(a=1,b=2,c=3,d=4,e=5,f=5)
maxscr = max(scores.values())

maxscrs =  [scr for scr in scores if scores[scr]== maxscr]

дает:

 ['e','f']
1 голос
/ 21 июля 2011

Функция max возвращает одно значение.Вы можете использовать что-то вроде этого:

key = max(scores, key=scores.get)
keys = [k for k in scores if scores[k] == scores[key]]

Редактировать: исправлено

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...