将类对象附加到列表

时间:2012-12-20 17:18:39

标签: python oop

我有一些代码可以对类进行一些操作。细节并不十分重要。 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 个答案:

答案 0 :(得分:2)

我怀疑以下内容会解决它:

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

因为您在其他任何地方使用.header来索引headerDict