Networkx обратный цикл для узлов - PullRequest
1 голос
/ 24 октября 2019

Я использую Networkx для создания DAG (ориентированный ациклический граф). Каждый узел представлен целым числом с двумя различными атрибутами «операция» и «достижимость». Я использую следующий цикл for для итерации по узлу:

for nodes in p.nodes(data=True):

Он проходит по каждому узлу от первого до последнего. В другой части кода мне нужно выполнить итерации в обратном порядке, от последнего к первому, но я не могу повернуть объект в обратном порядке, так как тип - <class 'networkx.classes.reportviews.NodeDataView'>. Как можно изменить порядок цикла for?

Моя сеть выглядит следующим образом

[(1, {'operation': <qiskit.dagcircuit.dagnode.DAGNode object at 0x120a394d0>, 'reachable': False}), (2, {'operation': <qiskit.dagcircuit.dagnode.DAGNode object at 0x120a39490>, 'reachable': False}),.........., (12, {'operation': <qiskit.dagcircuit.dagnode.DAGNode object at 0x120a44250>, 'reachable': True})]

1 Ответ

1 голос
/ 24 октября 2019

Вы можете привести объект NodeView к списку, а затем перевернуть список.

g = nx.erdos_renyi_graph(100, 0.1)
node_list = list(g.nodes())
reversed_node_list = node_list[::-1]
...