NetworkX - следи за порядком в краях - PullRequest
2 голосов
/ 05 марта 2019

У меня есть двудольный граф 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 не будет работать в этом случае.

1 Ответ

4 голосов
/ 05 марта 2019

Проверьте NetworkX's 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)])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...