Сравните значения узлов в NetworkX, используя Python - PullRequest
2 голосов
/ 24 февраля 2020

Я пытаюсь сравнить два значения узла с оператором if в NetworkX. Для этого моя структура графа Graph (G) и Graph (G1) выглядит следующим образом:

import networkx as nx
#Define Graph G
G = nx.DiGraph()
G.add_edge('x','a', dependency=0.4)
G.add_edge('x','b', dependency=0.7)
G.add_edge('b','a', dependency=0.3)
G.add_node('x', value=10)
G.add_node('a', value=15)
G.add_node('b', value=20)
#Define Graph G1 
G1 = nx.DiGraph()
G1.add_edge('x','a', dependency=0.4)
G1.add_edge('x','b', dependency=0.7)
G1.add_edge('b','a', dependency=0.3)
G1.add_node('x1', value=10)
G1.add_node('a1', value=15)
G1.add_node('b1', value=20)

Теперь я просто хочу сравнить два атрибута узла G.node (x) и G1. узел (x1) и сделайте что-нибудь, если они одинаковые:

if G.nodes(['x']['value']) == G1.nodes['x1']['value']:
    print("Both values are the same!")

Но я продолжаю получать следующее сообщение об ошибке:

TypeError: list indices must be integers or slices, not str

Может ли кто-нибудь помочь мне с этим?

1 Ответ

2 голосов
/ 24 февраля 2020
if (G.nodes['x']['value'] == G1.nodes['x1']['value']):
    print("Both values are the same!")

Нет скобок при доступе к узлам.

...