2017-01-29 2 views
1

Я искал способы захвата связанного ключа на основе значения, но большинство из них кажется очень сложным. Может быть, потому, что я новичок в Python, но есть ли простой способ получить ключ, связанный с (max) значением? Например:Простейший способ захвата ключа, связанный с значением «max» в словаре

d = {'one':1, 'two':2, 'three':3, 'four':4, 'five':5} 
max(d.values()) 

даст 5.

Как получить ключ, связанный с этим значением «5»?

+0

Duplicate? http://stackoverflow.com/questions/8023306/get-key-by-value-in-dictionary – jdv

+0

Возможный дубликат [Получить ключ по значению в словаре] (http://stackoverflow.com/questions/8023306/get- key-by-value-in-dictionary) –

ответ

0

Вы можете выполнить итерацию через словарь и сохранить ключ самого высокого значения.

import math 

max_value = -math.inf # Infinitly small number. 
max_value_key = None 
for key, value in d.items(): 
    if max_value < value: 
     max_value = value 
     max_value_key = key 
+0

Я пробовал это, но не смог заставить его работать. Я нашел решение здесь от другого пользователя, но я действительно не понимаю, как это работает: max = max (d, key = d.get) print (максимум, d [максимум]) Так что с моим Например, это вернет значение 5, так как оно является максимальным, и вернет ключ, связанный с 5, который будет «пятью». Если бы я сломал решение и просто сделал max = max (d), он вернет «два». Наверное, я не понимаю метод get? Я не знаю, я так запутался, пытаясь сломать это, чтобы понять это ... – magic9669

+0

Просто напечатайте 'max_value_key', и вы увидите, что этот метод работает. 'max = max (d, key = d.get)' лучше. Ключевой вариант - это функция, в которую передается каждый элемент в 'd'. Элементы в 'd' - это ключи, а' d.get' вернет значение каждого ключа. Поэтому 'max (d, key = d.get)' будет видеть, какой ключ в вашем словаре имеет наибольшее значение и дает вам соответствующий ключ. Когда вы выполняете 'max (d)', вы ищете наибольший ключ в словаре, и поскольку все они являются строками, он даст вам строку, которая больше всего в алфавитном порядке. –

Смежные вопросы