Python 字典中的反向查找:按值检索键
虽然 Python 字典提供了一种将键映射到相应值的有效方法,但可能是您需要执行反向查找的情况。这对于您有值并需要查找关联键的情况非常有用。
问题:
假设您有一个将姓名映射到年龄的字典。您的任务是创建一个函数,该函数将年龄作为输入并返回相应的名称。但是,您的脚本遇到了 KeyError 错误,并且您正在寻求修改代码以处理这种情况的帮助。
代码:
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
解决方案:
提供的代码尝试迭代字典的值并将它们与输入年龄。如果找到匹配项,代码会尝试使用dictionary[age]从字典中检索匹配的键,这就是KeyError发生的地方。
要在Python中执行反向查找,我们可以使用两种方法:
方法 1:
mydict = {'george': 16, 'amber': 19} print mydict.keys()[mydict.values().index(16)] # Prints george
此方法涉及使用以下方法获取所有键和值的列表分别是 mydict.keys() 和 mydict.values()。然后,我们在值列表上使用 index() 查找输入年龄的位置并检索该位置的键。
方法 2 (Python 3.x):
mydict = {'george': 16, 'amber': 19} print(list(mydict.keys())[list(mydict.values()).index(16)]) # Prints george
与第一种方法类似,此方法涉及将键和值转换为列表。然而,它利用 Python 3.x 语法来简化索引过程。
以上是在Python字典中执行反向查找时如何处理'KeyError”?的详细内容。更多信息请关注PHP中文网其他相关文章!