В настоящее время я использую версию NetworkX, предварительно установленную с Spyder 3.3.6 (NetworkX 2.3), и когда я добавляю атрибуты к узлу внутри цикла for, изменения не отражаются, пока я не выйду из цикла. Вот выдержка из моего кода:
wordgraph = nx.DiGraph()
for i in range(len(lines)):
for j in range(len(curline)):
...
wordgraph.add_node(newid, name=cur, attribute=wordstat)
print("contents of newly added", newid, ":", wordgraph[newid])
...
print(nx.get_node_attributes(wordgraph, 'attribute'))
Первый вывод выводит что-то вроде этого:
contents of newly added 34 : {}
, тогда как второй вывод выводит заполненный словарь типа
{-1: 'start', 9999: 'end', 2: None, 3: 'r', 4: 'n', 5: 'n', 6: 'n', 7: 'a', 8: None, 9: 'n', 10: None, 11: 'n', 12: None, 13: None, 14: 'n', 15: 'n', 16: 'a', 17: None, 18: 'n', 19: None, 20: 'n', 21: 'n', 22: 'a', 23: None, 24: 'n', 25: None, 26: None, 27: 'a', 28: 'n', 29: None, 30: 'n', 31: 'n', 32: 'n', 33: 'a', 34: 'r', 35: None, 36: 'n'}
Мне нужно, чтобы атрибуты узла обновлялись сразу при создании каждого узла, но я не могу сказать, что я делаю неправильно для NetworkX, чтобы отложить добавление атрибутов до конца,Что я могу сделать, чтобы это исправить?