在python 2.7中,我有一本字典词典,我试图以快速的方式从中获取价值。但是,有时其中一个键(可能是其中一个)在我的字典中不存在,在这种情况下我想得到一个默认值。
我的字典看起来像这样:
values = { '1A' : { '2A' : 'valAA', '2B' : 'valAB'},
'1B' : { '2A' : 'valBA', '2B' : 'valBB'} }
当我使用现有密钥查询它时效果很好:
>>> values['1A']['2A']
'valAA'
>>> values.get('1B').get('2B')
'valBB'
我如何做到这一点:
>>> values.get('not a key').get('not a key')
'not present'
答案 0 :(得分:2)
创建一个获取值的函数。
values = { '1A' : { '2A' : 'valAA', '2B' : 'valAB'},
'1B' : { '2A' : 'valBA', '2B' : 'valBB'} }
def get_value(dict, k1, k2):
try:
return dict[k1][k2]
except KeyError as ex:
return 'does not exist'
print get_value(values, '1A', '2A')
print get_value(values, '1A', '4A')
答案 1 :(得分:0)
这就像一个魅力:
values.get(key1, {}).get(key2, defaultValue)
如果字典中没有第二个键,则返回第二个.get()
的默认值。
如果字典中不存在第一个键,则默认值为空字典,这确保第二个键不会出现在其中。然后还将返回第二个.get()
的默认值。
例如:
>>> defaultValue = 'these are not the values you are looking for'
>>> key1, key2 = '1C', '2C'
>>> values.get(key1, {}).get(key2, defaultValue)
'these are not the values you are looking for'
>>> key1, key2 = '1A', '2B'
>>> values.get(key1, {}).get(key2, defaultValue)
'valAB'