Я пытаюсь создать простой DiGraph в Python NetworkX из вложенного словаря, но похоже, что встроенная инициализация не создает конечные конечные узлы.
Пример игрушки:
class_hierarchy= {-1: ["A", "B"],
"A":{"A1":[1], "A2":[3,4]},
"B": {"B1":[5,6], "B2": [7,8]}}
Строительный график:
G = DiGraph(class_hierarchy)
Теперь посмотрим, что в нем есть:
G.nodes
Out[86]: NodeView((-1, 'A', 'B', 'A1', 'A2', 'B1', 'B2'))
Похоже, что конечные узлы не добавляются
Проверка:
list(G.successors('A'))
Out[88]: ['A1', 'A2']
выглядит разумно
Но:
list(G.successors('A1'))
Out[89]: []
Я не уверен, почему это так? Документация для NetworkX указывает, что:
Input_graph_data (входной график (необязательно, по умолчанию: нет)) - Данные для инициализации графика. Если Нет (по умолчанию), создается пустой график. Данные могут быть любого формата, который поддерживается функцией to_networkx_graph (), в настоящее время включает в себя список фронтов, голос диктов , голос списков и т. Д. ...
Есть идеи, что я делаю не так?