Networkx图表不具有其价值

时间:2014-10-20 17:53:59

标签: python networkx

我一直在使用这段Python代码:

import networkx as nx
import random
import copy

iteracoes = 10
topologia = nx.gnp_random_graph(N,1.0)

def escolha_contatos(g):
    contatos = [] 
    n_contatos = g.number_of_edges() 

    while (n_contatos > 0):
        contatos.append(random.choice(g.edges())) 
        g.remove_node(contatos[-1][0]) #remocao do nodo da rede
        g.remove_node(contatos[-1][1]) #remocao do nodo da rede
        n_contatos = g.number_of_edges() #novo numero de contatos

    return contatos

for i in range(1,iteracoes):
    aux_top = copy.copy(topologia)
    contatos = escolha_contatos(aux_top)

其中topologia是图表。当我调用函数escolha_contatos时,此函数会更改拓扑的边数。这个结果对我来说并不有趣。有没有办法避免这个问题?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

使用copy.copy仅生成浅拷贝,这意味着不会复制存储节点和边的数据结构。使用copy.deepcopy(topologia)制作图表的深层副本。