2015-07-18 2 views
1

У меня есть список node_list.Порядок заказа не соответствует

In [1]: node_list 
Out[1]: ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 1, 2, 3, 4, 5, 6] 

добавить узлы в NetworkX графа G из node_list

In [2]: import networkx as nx 

In [3]: G = nx.Graph() 

In [4]: G.add_nodes_from(node_list) 

Но когда я получаю список узлов, шаблон меняется!

In [5]: list(G.nodes()) 
Out[5]: ['a', 1, 'c', 'b', 'e', 'd', 'g', 'f', 'i', 'h', 'j', 2, 3, 4, 6, 5] 

Я хочу Out[5] быть в той же схеме, что и node_list, но этого не произошло. Как это можно сделать?

ответ

2

From the docstring из NetworkX.Graph:

Examples 
-------- 
Create a graph object that tracks the order nodes are added. 
>>> from collections import OrderedDict 
>>> class OrderedNodeGraph(nx.Graph): 
...  node_dict_factory=OrderedDict 
>>> G=OrderedNodeGraph() 
>>> G.add_nodes_from((2,1)) 
>>> G.nodes() 
[2, 1] 
>>> G.add_edges_from(((2,2), (2,1), (1,1))) 
>>> G.edges() 
[(2, 1), (2, 2), (1, 1)] 
Смежные вопросы