当默认值是dict中的另一个键时,dict.get()如何工作?

时间:2019-08-14 23:36:04

标签: python dictionary keyerror

我试图了解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')

0 个答案:

没有答案
相关问题