我所拥有的:networkX 中的多重图 H。两个节点“0”和“1”。现有边 e1=(0,1)。
我想要的是:在节点 0 和 1 之间添加第二条新边 e2。
问题:当我在 0 和 1 之间添加新边 e2 时,e1 会更新为 e2 的新值(属性),并且不会添加 e2。在 0 和 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
正如你所看到的,第二条边已经更新了第一条边,但是 e2 添加了一个指定的键,与 e1 不同(默认为 0)。
我怎样才能避免这个问题? 添加edge e2后我想要这个结果:
for i in H.edges(data=True):
print i
>>>>>(0: 0, 1, {}, 1: 0,1,{'value': 'blue'} ) #this is correct