python - 如何使用networkx将边添加到列表末尾

标签 python networkx

我在python中使用networkx时遇到一些问题,希望有人能帮助我。 代码如下:

G = nx.Graph()
G.add_edge(1,4)
G.add_edge(1,2)
print G.edges()

G.add_node(3)
G.remove_edge(1,2)
G.add_edge(1,3)
G.add_edge(4,3)
print G.nodes()
print G.edges()

Python 的输出是:

[(1, 2), (1, 4)]
[1, 2, 3, 4]
[(1, 3), (1, 4), (3, 4)]

但是,我想要的输出是:

[(1, 4),(1, 2)]
[1, 2, 3, 4]
[(1, 4), (1, 3), (3, 4)]

边列表中的顺序在我的实现中非常重要,我检查了我的代码一个小时,终于在这里找到了这个错误,似乎networkx自动将最小数量的边排序到第一位,有没有什么让边的顺序成为我添加边的顺序的方法? 希望有人能帮助我,我会在线等待,谢谢

最佳答案

G.nodes() 和 G.edges() 生成的节点和边的顺序是任意的,您无法使用 NetworkX 控制它。您当然可以使用单独的数据结构(例如列表)自己跟踪任何顺序。

关于python - 如何使用networkx将边添加到列表末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20367439/

相关文章:

python - 在python的音频文件的不同位置插入不同数量的静音

python - 如果使用 pandas 的几行满足某些条件,如何删除行

python - 类别的一次性编码

python - 如何在networkx中正确定位网络边缘标签?

python - 如何清楚地绘制大型网络

python - Networkx 边上的权重具有累积和

python - NetworkX:将权重复制到新图,权重是重复的

python - 为什么当索引为 0 和 1 时交换不会发生?

python - Google App Engine - 端点 API - 从另一个 App Engine 应用程序使用 -python

python - 放大图上的 Matplotlib savefig()