NAMES = ['Alice', 'Bob','Cathy','Dan','Ed','Frank',
'Gary','Helen','Irene','Jack', 'Kelly','Larry']
AGES = [20,21,18,18,19,20,20,19,19,19,22,19]
def nameage(a,b):
nameagelist = [x for x in zip(a,b)]
nameagedict = dict(nameagelist)
return nameagedict
def name(a):
for x in nameage(NAMES,AGES):
if a in nameage(NAMES,AGES).values():
print nameage(NAMES,AGES).keys()
print name(19)
私は19歳の人の名前を返そうとしています。値で辞書を検索してキーを返すにはどうすればよいですか?Pythonの辞書で値をキーで検索
あなたの例のデータは、あなたの質問に一致していません。あなたは辞書ではなく2つのリストから始めます。あなたのデータがkey = nameとvalue = ageのdictの型で始まっている場合、逆辞書検索を行います:ここでの議論http://stackoverflow.com/questions/2568673/inverse-dictionary-lookup-python#2568673 – DevPlayer
また、 "名前"という名前の関数は誤解を招きます。ほとんどの年代には複数の名前があるので、おそらく名前に「名前」を付けるべきです。また、あなたのデータは潜在的な問題を暗示しています。実際のデータは人の名前でも人の年齢でもないかもしれませんが、どんなサイズのデータでも、両方のオブジェクトはユニークではない可能性が非常に高いです。あなたの例では、特定の日に生まれたジョン・スミスがもっと多いことがあります。 – DevPlayer