2012-12-20 4 views
1

클래스를 조작하는 일부 코드가 있습니다. 세부 사항은 대단히 중요하지 않습니다. headerDict는 NodeCluster 클래스의 객체 목록을 포함하는 사전입니다. Node1과 Node2는 NodeCluster 클래스의 객체입니다. .header는 NodeCluster 클래스의 속성입니다. 내가하고 싶은 일은 headerDict의 node2 항목에있는 클래스 객체를 반복하고, 헤더 속성을 변경하고, 여기에 문제가있는 부분입니다. 각 클래스 객체를 node1의 headerDict에있는 목록에 추가합니다. 무엇 제공클래스 개체를 목록에 추가하는 중

KeyError: <__main__.NodeCluster instance at 0x10047b050> 

:

if len(headerDict[node1.header]) >= len(headerDict[node2.header]): 
     for node in headerDict[node2.header]: 
      node.k = node.k - 1 
      node.header = node1.header 
      headerDict[node1].append(node) 

나는 추가 작업을 수행하려고 할 때, 나는이 오류가, 그러나 : 여기에 코드입니다?

+1

당신의 데이터를 완벽하게 묘사 할 수는 없으므로 아마도 마지막 줄로 대신'headerDict [node1.header] .append (node)'를 추측 할 수 있습니다. – sberry

답변

2

나는 다음이 문제를 해결할 것입니다 생각 : 당신이 headerDict에 인덱스 .header을 사용하고

 headerDict[node1.header].append(node) 
         ^^^^^^^ 

다른 곳에 있기 때문이다.

관련 문제