我有一个二部图B,如下所示:

B.add_nodes_from([1, 2, 3, 4], bipartite=0)
B.add_nodes_from([5, 6, 7, 8], bipartite=1)
B.add_edges_from([(1, 8), (1, 7), (1, 6), (1,5), (2,8), (2,7), (2,6), (3,8), (3,7), (4,8)])

我希望使用B.edges()时边缘的顺序保持不变。相反,他们拖着脚走出来:
[(1, 8), (1, 5), (1, 6), (1, 7), (2, 8), (2, 6), (2, 7), (3, 8), (3, 7), (4, 8)]

顺序不一定是上升或下降的。我只希望它按照我使用B.add_edges_from(...)添加它们的顺序。所以在这种情况下使用sorted是行不通的。

最佳答案

检查NetworkX的Ordered Graphs

g = nx.OrderedGraph()
g.add_nodes_from([1, 2, 3, 4], bipartite=0)
g.add_nodes_from([5, 6, 7, 8], bipartite=1)
g.add_edges_from([(1, 8), (1, 7), (1, 6), (1,5), (2,8), (2,7), (2,6), (3,8), (3,7), (4,8)])

print(g.edges())

输出
EdgeView([(1, 8), (1, 7), (1, 6), (1, 5), (2, 8), (2, 7), (2, 6), (3, 8), (3, 7), (4, 8)])

08-19 21:46