2016-12-09 2 views
0

Мне нужно отметить узлы как посещенные в обход, который я делаю. Поэтому я делаю G[node]['visited'] = True. Тем не менее, это беспорядок вверх G.neighbors(node), давая мне 'visited' в качестве соседа node! Каков подход к этому?Networkx дает атрибуты как соседи

Пример:

>>> import networkx as nx 
>>> G = nx.Graph() 
>>> G.add_edge(0,1) 
>>> G[0]['visited'] = True 
>>> G.neighbors(0) 
['visited', 1] 

ответ

1

Вместо использования G[0]['visited'] = TrueG.node[0]['visited'] = True.

Пример того, что вы хотите. Вы можете проверить значение атрибута так же, как вы его установили.

>>> import networkx as nx 
>>> G = nx.Graph() 
>>> G.add_edge(0,1) 
>>> G.node[0]['visited'] = True 
>>> G.neighbors(0) 
[1] 
>>> G.node[0]['visited'] 
True 
+0

Ah. Выглядит неплохо! И тогда, если я хочу использовать граничные атрибуты, я бы сделал, например. 'G.edge [и] [V] [ 'поток'] = 50'? –

+0

Да. Здесь вы можете использовать 'G.edge [u] [v] ['flow'] = 50' или' G [u] [v] ['flow'] = 50'. – edo

+0

Но последний перепутал список смежности, верно? –

Смежные вопросы