首页 > 解决方案 > 使用 'or' 运算符处理 dict 中的 KeyError

问题描述

如果 a 中的键无效,那么在 python3.7^中是否可以使用运算符?ordict

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

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

标签: python

解决方案


不是您编写它的方式,因为[]运算符在表达式的右侧or甚至被评估之前引发了异常。

正确的方法是使用以下get功能:

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

如果问题更多的是学术性质:第二个参数默认为None,所以你可以这样做:

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

但请注意,(a) 这不是 Pythonic,并且 (b) 它将返回'Default'实际存在于 中的虚假值,myDict例如0None、和。False[]''


推荐阅读