例如:
g1 = nx.DiGraph()
g1.add_edge(1,1,w = 1)
g1.add_edge(1,2,w = 1)
g1.add_edge(1,3,w = 2)
g1.add_edge(2,2,w = 2)
g2 = g
print g2.predecessors(2) #[1, 2]
g1.remove_node(1)
print g2.predecessors(2) #[2]
当我删除 g1 中的节点 1 时,g2 也会受到影响。 我想创建与 g1 相同的图 g2,但是当我对 g1 进行更改时,g2 将不会更改。 我怎样才能做到这一点?谢谢!!!
最佳答案
调用方法copy()
在图表上,这样您就不用做引用:
In [41]:
g1 = nx.DiGraph()
g1.add_edge(1,1,w = 1)
g1.add_edge(1,2,w = 1)
g1.add_edge(1,3,w = 2)
g1.add_edge(2,2,w = 2)
g2 = g1.copy()
print( 'before g2', g2.predecessors(2) ) #[1, 2]
g1.remove_node(1)
print ('after g2', g2.predecessors(2)) #[2]
print ('g1 graph ', g1.predecessors(2)) #[2]
before g2 [1, 2]
after g2 [1, 2]
g1 graph [2]
您可以看到图g2
未修改,而g1
已删除节点
关于python - 如何使用 NetworkX 创建两个相同的图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42117431/