首页 > 后端开发 > Python教程 > 在Python字典中执行反向查找时如何处理'KeyError”?

在Python字典中执行反向查找时如何处理'KeyError”?

Mary-Kate Olsen
发布: 2024-12-14 01:27:11
原创
1010 人浏览过

How to Handle `KeyError` When Performing Reverse Lookups in Python Dictionaries?

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板