我在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/