如何预防前瞻性错误



递归到循环中,我需要从调用到循环中的不同字典中提取特定键的值。密钥寄存器可能存在,也可能不在检索到的字典中。当不存在时,我查询这样的密钥,返回错误:KeyError: 'c'

dict2 ={'a':[1,2,3,4],'b':[5,6,7,8]}
dict1 ={'a':[1,2,3,4],'b':[5,6,7,8],'c':[9,9,1,3]}
lis = [dict1,dict2]
for tmp in lis:
my_var = tmp['c']

在第一个循环中,我正确地获得了向量[9,9,1,3];在第二个错误。

哪个可以是一个内置函数,在执行tmp['c']并得到错误之前提前进行评估?thks

没有什么可以"向前看";因为你现在是";在";要检查的元素。

如果你正在寻找不抛出任何异常的东西,你可以使用.get(),它返回None而不是exception

for tmp in lis:
my_var = tmp.get('c')
if my_var is None:
continue

否则,在tmp['c']周围使用try/except

最新更新