python - 使用 'or' 运算符处理 dict 中的 KeyError
问题描述
如果 a 中的键无效,那么在 python3.7^
中是否可以使用运算符?or
dict
value = myDict['invalidKey'] or 'Default'
print(value)
# Has to show 'Default' and don't raise the [KeyError: 'invalidKey'] exception
解决方案
不是您编写它的方式,因为[]
运算符在表达式的右侧or
甚至被评估之前引发了异常。
正确的方法是使用以下get
功能:
value = myDict.get('invalidKey', 'Default')
如果问题更多的是学术性质:第二个参数默认为None
,所以你可以这样做:
value = myDict.get('invalidKey') or 'Default'
但请注意,(a) 这不是 Pythonic,并且 (b) 它将返回'Default'
实际存在于 中的虚假值,myDict
例如0
、None
、和。False
[]
''
推荐阅读
- unity3d - 构建版本中的 Unity 灯光中断
- python - Ubuntu 20.04 LTS 上的 Tensorflow 2.2.0 GPU 支持
- python - 我怎样才能同时运行 tkinter 和 watchdog
- java - 如何在 Java 项目中找到主类?
- c# - 如何强制 VSCode Omnisharp 不使用 MONO?
- spring-boot - 在 Spring Boot 中使用 Ehcache 在 List Cacheable 中查找对象
- laravel - Laravel:创建按钮返回相同的视图但空白并且不创建任何记录
- c++ - 是否可以针对 openmp 优化我的代码?
- submit - 在我的 APP 中修改了提交和最后一个 powerApps 的文件夹的问题
- node.js - 仅在第一次尝试时执行 MongoDB bulkWrite replaceOne 时出现不可变 _id 错误