0

リストからエッジを追加しようとしました:

for first in G.nodes():
    G_dict = copy.copy(G.node[first])
    sorted_G = sorted(G_dict.iteritems(), key = op.itemgetter(1), reverse = True)
        for number in range(0, close_limit):
           edge_temp.append((first,sorted_G[number][0]))
           print(edge_temp)
           G.add_edges_from(edge_temp)

edge_temp を印刷したところ、非常にうまく機能しました。ただし、関数を使用しようとするとG.add_edges_from()、次のエラーが発生しました。

Traceback (most recent call last):
  File "C:\Python27\Wireless\rd_pc_contact1.py", line 95, in <module>
    G.add_edges_from(edge_temp)
     File "C:\Python27\lib\site-packages\networkx-  
     1.8.1py2.7.egg\networkx\classes\graph.py", line 785, in add_edges_from
     datadict=self.adj[u].get(v,{})
  KeyError: 0

エラーが発生した理由がわかりません。エラーを明確に説明していただけますか?

4

2 に答える 2

0

投稿されたコードから、何が入っているかを判断するのは困難edge_tempです。毎回追加するリストです。おそらく、エッジを一度(first,sorted_G[number][0])だけ追加したいのですが、ループごとに何度も実行しています。行を次のように変更することをお勧めします。add_edges_from

G.add_edges_from([(first,sorted_G[number][0])])
于 2013-09-23T16:05:43.473 に答える