Networkx重复边缘

时间:2015-02-12 21:54:55

标签: python networkx

如果在networkx边数据结构中添加两次相同的边,那么节点之间是否有两条边或者只有一条边?例如,弹簧布局是否会显示节点与边[(a,b),(a,b),(a,b),(a,b)][(a,b),(a,b)]更多地收敛?如果我想加重优势,我该怎么做呢?

2 个答案:

答案 0 :(得分:5)

你可以很快地测试它,但它只会添加一次。边缘和节点在图形结构中表示为字典,只有在它们实际不存在时才会添加它们。

对于现有边缘,再次添加它们无效。

答案 1 :(得分:4)

这个答案有点晚了,但是为了完整起见...

您将需要使用Networkx的MultiGraph来允许两个节点之间有多个边。

创建图形:

G = nx.MultiGraph()

然后使用G.add_edge()添加边缘。 您可以测试重复的边缘是否重复:

for i in G.nodes:
    print(i, G.edges(i))

相反,如果您不希望重复边缘,只需将图形创建为:

G = nx.Graph()