2012-12-20 120 views
1

我有一些代碼可以對類進行一些操作。細節不是非常重要。 headerDict是一個字典,其中包含來自類NodeCluster的對象列表。 Node1和Node2是來自NodeCluster類的對象。 .header是NodeCluster類的一個屬性。我想要做的是迭代headerDict的node2條目中的類對象,更改它們的標題屬性,以及 - 這裏是問題部分 - 將每個類對象追加到node1的headerDict中的列表中。這裏有一個代碼片段:將類對象附加到列表中

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) 

然而,當我嘗試執行追加操作,我得到這個錯誤:

KeyError: <__main__.NodeCluster instance at 0x10047b050> 

是怎麼回事?

+1

一個猜測,因爲我不能完全描繪你的數據,但也許'headerDict [node1.header] .append(node)'作爲最後一行代替。 – sberry

回答

2

我懷疑下面將解決這個問題:

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

,因爲在其他地方你使用.header索引到headerDict