我试图了解python的dict.get()
方法在特殊情况下的工作原理,这种情况下的默认参数为dict['key']
,即dict.get('key1', dict['key2'])
。
当'key2'
存在时,它将按预期方式工作,返回'key1'
的值,但是,当'key2'
不存在时,即使KeyError: 'key2'
存在,也会引发'key1'
。
完整示例:
d = {'key1': 'value1', 'key2': 'value2'}
d.get('key1', d['key2'])
'value1'
d.get('key1', d['key3'])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'key3'
我是否正确,假设已评估d['key2']
并将结果('value1'
)传递给.get()
?因此,d['key3']
在参数甚至传递给.get()
之前就引发了错误?
说,如果'key1'
不存在,并且我不确定第二个键是否也存在,我确实想获取其他键的值。是使用类似以下内容的最佳方法:
d.get('key1') or d.get('key2')