使用python字典处理keyerror

ame*_*wan 1 python dictionary

如何KeyError在python字典中修复?

我被要求创建一个字典并创建一个函数number_dictionary(text, n).我能够返回True或者False如果text匹配n,但是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)
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 8

三种选择:

在您的情况下,您尝试访问密钥测试了密钥.你可以交换测试(丢弃or n):

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

或者只是使用dict.get(),默认情况下None永远不会匹配字符串n:

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

无论是not in==对比试验已经产生或者True还是False,所以没有必要使用if独立的return语句.