1

我有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,我如何知道三个字典中的哪一个引发了错误?有什么简单的方法。

感谢您提供任何帮助。

4

1 回答 1

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块中。

于 2013-05-05T18:23:38.327 回答