2017-05-23 2 views
0

私はこのようなグラフがあります。Pythonのグラフの変更

{'0': {'4': 1}, 
'1': {}, 
'2': {'3': 1, '4': 1}, 
'3': {'2': 1}, 
'4': {'0': 1, '2': 1}} 

を、私は、特定のエッジを除去することによって、それにいくつかの変更をしたいが、私はまた、元のグラフを保持したいです。だから私は

temp=copy.copy(graph) 

を使用してそれからコピーを作る。そして、私は望む特定のエッジ(この場合はノード2とノード3の間のエッジ3)を削除する関数を(新しいコピー上で)実行しますが、元のグラフ。どうすればこの問題を解決できますか?

さらに、エッジを削除するために使用されているコードは、この

def remove_links(graph_dic,edge_number): 
    count = 1 
    V,U = '',' ' 
    for item in temp.items(): 
     for node in item[1].items(): 
      if count==edge_number: 
       V = item[0] 
       U = node[0] 
      count+=1 
    del graph_dic[V][U] 
    return graph_dic 
また、私は新しいコピーにしたい特定のエッジを除去しながら、元のグラフ内の任意の変更をしたくない

。さらに、私は... Jupyterノートブックに

答えて

1

を、それを実行しているが、どのような私が手にしても、何をやっている、元のグラフ

にその変更を起こっていると呼ばれている:「浅いコピー」。あなたがする必要があるのは "ディープコピー"です。代わりにcopy.deepcopyを使用します。

関連する問題