使用“或”运算符处理dict中的KeyError

2024-09-30 06:20:31 发布

您现在位置:Python中文网/ 问答频道 /正文

在python 3.7^中,如果dict中的键无效,是否可以使用or操作符

value = myDict['invalidKey'] or 'Default'

print(value)
# Has to show 'Default' and don't raise the [KeyError: 'invalidKey'] exception

Tags: orandthetodefaultvalueshowdict
2条回答

不是以您编写的方式,因为[]运算符在计算or表达式的右侧之前引发异常

正确的方法是使用get函数:

value = myDict.get('invalidKey', 'Default')

如果问题更具学术性:第二个参数默认为^{,那么您可以这样做:

value = myDict.get('invalidKey') or 'Default'

但请注意,(a)这是较少的Pythonic,并且(b)它将返回'Default'实际存在于myDict中的falsy值,如0NoneFalse[]''

如果我理解正确的话。可以使用三元运算符。例如

my_dict = {
    'key': "Wow"
}

value = my_dict.get('key') if 'key' in my_dict.keys() else 'Default'
print(value)

相关问题 更多 >

    热门问题