我有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,我如何知道三个词典中的哪一个引发了错误?有什么简单的方法。
感谢任何帮助,谢谢。
答案 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
块中。