私が持っているもの:networkXのマルチグラフH。2 つのノード '0' と '1'。既存のエッジ e1=(0,1)。
私が欲しいもの:ノード0と1の間に2番目の新しいエッジe2を追加します。
問題: 0 と 1 の間に新しいエッジ e2 を追加すると、e1 は e2 の新しい値 (属性) で更新され、e2 は追加されません。0 と 1 の間には常に 1 つのエッジがあります
私のコード例:
H=nx.MultiGraph()
H=nx.read_gml('my_graph.gml')
HI のすべてのエッジを正しく印刷すると、次のようになります。
for i in H.edges(data=True):
print i
>>>>>(0, 1, {}) #this is ok
ここで、key 属性を使用して e2=(0,1) に新しいエッジを追加します。
H.add_edge(0,1,key=1,value='blue')
しかし、Hのすべてのエッジを印刷すると:
for i in H.edges(data=True):
print i
>>>>>(0, 1, {'key': 1, 'value': 'blue'}) #this is error e1 was updated instead add of e2
ご覧のとおり、2 番目のエッジは最初のエッジを更新していますが、e2 は e1 とは異なる特定のキーで追加されています (デフォルトは 0)。
どうすればこの問題を回避できますか?? エッジ e2 を追加した後、この結果が必要です。
for i in H.edges(data=True):
print i
>>>>>(0: 0, 1, {}, 1: 0,1,{'value': 'blue'} ) #this is correct