我在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自动命令边缘最小的数字首先是,有没有在我添加它们时让边缘顺序为顺序的方法?
希望有人可以帮助我,我会在线等待,谢谢
答案 0 :(得分:1)
G.nodes()和G.edges()生成的节点和边的顺序是任意的,您无法使用NetworkX控制它。您当然可以使用单独的数据结构(例如列表)跟踪自己的任何排序。