2016-12-09 7 views
0

私はトラバーサルで私が行っているようにノードをマークする必要があります。だから私はG[node]['visited'] = Trueをやる。しかし、これは'visited'nodeの隣人として与えて、G.neighbors(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'] = True使用G.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

ああ。いいね!エッジ属性を使用したい場合は、たとえば次のようにします。 'G.edge [u] [v] ['flow'] = 50'? –

+0

はい。ここで 'G.edge [u] [v] ['flow'] = 50'または' G [u] [v] ['flow'] = 50'を使うことができます。 – edo

+0

しかし、後者は隣接リストを駄目にしますね。 –

関連する問題