例如:
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不会改变。 我怎样才能做到这一点?感谢!!!
答案 0 :(得分:1)
在图表上调用方法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
已移除某个节点