Python Dictionary KeyError和Multiple Dictionaries

时间:2013-05-05 18:19:07

标签: python exception dictionary try-catch keyerror

我有3个词典

a = {1:'this' ,2:'is' ,3:'an' ,4:'example'}
b = {4:'this' ,5:'is' ,6:'example'}
c = {7:'this' ,8:'is'}

和这个

for i in range(10):
    print a[i] ,b[i] ,c[i]

它导致KeyError,我如何知道三个词典中的哪一个引发了错误?有什么简单的方法。

感谢任何帮助,谢谢。

1 个答案:

答案 0 :(得分:2)

使用当前代码无法实现此目的,因为Python异常回溯是基于行的,而不是基于令牌的。

相反,您可以在字典上使用.get()方法,并检查每个结果以查看它是None(或者如果值实际上可能是None正常,请提供您自己的备用默认)。

for i in range(10):
    # if a key is missing in a, x will be None, etc.
    x, y, z = a.get(i), b.get(i), c.get(i)

或者,您可以将print语句分成多行:

for i in range(10):
    print a[i],
    print b[i],
    print c[i]

然后你可以根据需要将它们包装在单独的try块中。