在字典中按值获取键

2022-09-05 01:16:06

我做了一个函数,它将在a中查找年龄并显示匹配的名称: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

我知道如何比较和找到年龄,我只是不知道如何显示这个人的名字。此外,由于第5行,我得到了一个。我知道这是不正确的,但我不知道如何让它向后搜索。KeyError


答案 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 中的更多信息:如何从 dict 中获取值列表?keys().values()


答案 2

没有。 不打算以这种方式使用。dict

dictionary = {'george': 16, 'amber': 19}
search_age = input("Provide age")
for name, age in dictionary.items():  # for name, age in dictionary.iteritems():  (for Python 2.x)
    if age == search_age:
        print(name)