年齢を検索しDictionary
、一致する名前を表示する関数を作成しました。
dictionary = {'george' : 16, 'amber' : 19}
search_age = raw_input("Provide age")
for age in dictionary.values():
if age == search_age:
name = dictionary[age]
print name
比較して年齢を調べる方法はわかっていますが、人の名前を表示する方法がわかりません。さらに、KeyError
5 行目の because が表示されます。正しくないことはわかっていますが、逆方向に検索する方法がわかりません。
ベストアンサー1
mydict = {'george': 16, 'amber': 19}
print mydict.keys()[mydict.values().index(16)] # Prints george
または Python 3.x の場合:
mydict = {'george': 16, 'amber': 19}
print(list(mydict.keys())[list(mydict.values()).index(16)]) # Prints george
基本的には、辞書の値をリストに分割し、値の位置を見つけて、その位置にあるキーを取得します。
Python 3 の とkeys()
の詳細:.values()
辞書から値のリストを取得するにはどうすればよいですか?