2013-05-05 7 views
0

나는 3 사전 파이썬 사전 KeyError를하고 여러 사전

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

오류를 제기 한 세 가지 사전 그것이 KeyError를, 는 어떻게 알 수 있습니까 원인이

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

있나요? 거기에 어떤 간단한 방법이 있습니다.

아무쪼록 잘 부탁드립니다.

+0

여러 줄로 나누거나 ... 디버거를 사용합니다. – JBernardo

답변

2

파이썬 예외 추적 코드는 토큰 기반이 아니라 라인 기반이기 때문에 현재 코드로 수행 할 방법이 없습니다.

대신, 당신은 사전에 .get() 방법을 사용하고 None를 어떤지를 확인하기 위해 각각의 결과를 확인할 수 있습니다 (또는 값이 실제로 일반적으로 None 될 수 있다면, 자신의 대체 기본 제공).

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

을 그리고 당신은 필요에 따라 개별 try 블록을 포장 수 :

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 문을 깰 수 있습니다.

+0

앰버 감사하지만 원래 코드는 훨씬 더 복잡하며 나누기 및 곱하기와 같이 여러 줄로 구분할 수 없습니다. 더 이상 아이디어가 없습니까? –

+0

모든 조회를 인라인하지 않고 중간 변수를 사용하십시오. – Amber

+0

훌륭한 아이디어가 결과로 돌아올 것입니다. –