前驱节点的属性

Predecessor nodes's attributes

我是 Python 的 networkx 新手。我正在尝试获取有向图中两个或多个前导节点的属性。

我反其道而行之:获取与neighbors的后继节点的属性,如下:

A = nx.DiGraph()

A.add_node('S1', e=1)
A.add_node('S2', e=2)
A.add_node('S3', e=3)

A.add_edges_from([('S2','S1'),('S3','S1')])

for neighbor in A.neighbors('S1'):
    print(A.nodes[neighbor]["e"])

不过,我想获取前辈的属性。问题是在有向图中,neighbors 只检索后继者而不是前任者。

根据我附上的图片,我想获取S1的前辈属性。我已经尝试使用命令 pred,如下所示,但它似乎不起作用:

for pred in A.pred('S2'):
    print(A.nodes[pred]["e"])

Output:
'AdjacencyView' object is not callable

谢谢大家的帮助!

你有 Graph.predecessors 个:

nodes = A.nodes(data=True)
for pred in A.predecessors('S1'):
    print(nodes[pred])
{'e': 2}
{'e': 3}

具体保存属性e:

out = dict()
nodes = A.nodes(data=True)
for pred in A.predecessors('S1'):
    out[pred] = nodes[pred]['e']

out
# {'S2': 2, 'S3': 3}