gpt4 book ai didi

python - 使用 python 字典处理 keyerror

转载 作者:太空宇宙 更新时间:2023-11-04 07:18:06 25 4
gpt4 key购买 nike

如何修复 python 字典中的 KeyError

我被要求创建一个字典并创建一个函数 number_dictionary(text, n)。如果 textn 匹配,我可以返回 TrueFalse,但有一个 KeyError 当我输入不在字典中的内容时应该返回 False

我将这两个条件放在一起(当它不匹配且不在字典中时),但随后它返回的所有内容都是 False

def number_dictionary(text,n):
numbers={'two': '2', 'three': '3', 'four': '4'}
if n != numbers[text] or n or text not in numbers:
return(False)
else:
return(True)

最佳答案

三个选项:

  • Catch the exception :

    try:
    foo = somedictionary[bar]
    except KeyError:
    return False
  • 使用 dict.get() method要返回一个默认值,该默认值默认为 None:

    foo = somedictionary.get(bar)  # return None if bar is not a key
  • 单独测试 key :

    if bar not in somedictionary:
    return False

在您的情况下,您尝试访问它之后测试了 key 。您可以交换测试(删除 或 n):

def number_dictionary(text, n):
numbers={'two': '2', 'three': '3', 'four': '4'}
return text not in numbers or n != numbers[text]

或者直接使用dict.get(),默认的None永远不会匹配字符串n:

def number_dictionary(text, n):
numbers = {'two': '2', 'three': '3', 'four': '4'}
return numbers.get(text) == n

not in== 比较测试都已经产生了 TrueFalse,所以有无需使用 if 和单独的 return 语句。

关于python - 使用 python 字典处理 keyerror,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32560773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com