2017-01-29 41 views
1

値に基づいて関連するキーを取得する方法を検索しましたが、ほとんどが非常に複雑に見えます。私がPythonで新しくなったのかもしれませんが、(最大)値に関連付けられたキーを取得する簡単な方法はありますか?たとえば:辞書で「最大」値に関連付けられたキーを取得する最も簡単な方法

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

は、私が「5」の値に関連付けられたキーを取得するにはどうすればよい5.

を与えるのだろうか?

+0

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

+0

[辞書の値でキーを取得]の可能な複製(http://stackoverflow.com/questions/8023306/get-キーで値段で) –

答えて

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(d、key = d.get) print(最大、d [最大]) たとえば、これは最大値なので5の値を返し、5に関連付けられたキー、つまり '5'を返します。私が解を打ち破り、max = max(d)を実行すると、2を返します。私はgetメソッドを理解していないと思いますか?私は分かりません、私はそれを理解するためにこれを打破しようと混乱しています... – magic9669

+0

'max_value_key'を印刷するだけで、このメソッドが動作することがわかります。 'max = max(d、key = d.get)'はより良いです。キーオプションは 'd 'の各要素が渡される関数です。 'd'の要素はキーで、' d.get'は各キーの値を返します。だから 'max(d、key = d.get)'は辞書内で最も大きな値を持つキーを見て、それに対応するキーを与えます。 'max(d)'を実行すると、辞書の中で最大のキーを探しています。すべてが文字列であるため、アルファベット順に最大の文字列を返します。 –

関連する問題