ex1 = {'value': '1, 2, 2, 3, 2, 2, 3, 3, 4, 3, 3, 5, 5, 5, 5, 5, 5, 5', 'number': '1197916152', 'key': '44'}
ex2 = {'number': '1197916152', 'key': '2'}
我有如上所述的字典。我需要检查dict
是否包含value
键,如果不包含,请返回1
。我尝试了以下方法:
np.where('value' in ex1, ex1['value'], 1)
np.where('value' in ex2, ex2['value'], 1)
虽然可以在ex1
上正常运行,但会在ex2
上返回错误:
KeyError跟踪(最近的呼叫 last)'in() ----> 1 np.where(ex2中的'value',ex2 ['value'],1)
KeyError:'值'
即使不满足条件,似乎ex2['value']
也会得到评估。我对吗?我该如何调整呢?
答案 0 :(得分:3)
对于一个更简单的解决方案,请使用字典.get
方法来获取value
键的内容,并在不存在1
的情况下将其设置为默认值:
ex1.get('value', 1)
ex1.get('value', 1)
# '1, 2, 2, 3, 2, 2, 3, 3, 4, 3, 3, 5, 5, 5, 5, 5, 5, 5'
ex2.get('value', 1)
# 1
答案 1 :(得分:0)
np.where('value' in ex2, ex2.get('value'), 1)