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>

何が得られますか?

4

1 に答える 1

2

私は以下がそれを修正すると思う:

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

.headerにインデックスを付けるために使用している他のすべての場所からheaderDict

于 2012-12-20T17:21:44.220 に答える