有一个字典,其结构如下:
data = {
'key': {
'subkey': 'value'
}
}
并且需要获取嵌套字典的值,前提是键的存在'key'未知data。
可以这样写:
value = None
if 'key' in data:
value = data['key']['subkey']
或者排成一行。我经常使用2种方法。
第一的:
value = None if 'key' not in data else data['key']['subkey']
第二:
value = None if not (subdict := data.get('key')) else subdict['subkey']
问题是:在短时间内多次执行此类检查的情况下,使用哪个选项有区别吗?也许有一些更简单的方法?
修改选项 c
in比 c 稍快get(),但如果失败,则返回 False 而不是 None:页面上提供的选项比较: