python - 前任节点的属性
问题描述
我是 Python 中 networkx 的新手。我正在尝试获取 DiGraph 中两个或多个前驱节点的属性。
我已经实现了相反的效果:使用邻居获取后继节点的属性,如下所示:
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"])
但是,我想获取前辈的属性。问题是在有向图中,邻居只检索后继者而不是前任者。
根据我附上的图片,我想获取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}
推荐阅读
- python - 使用 pandas assign 生成列名
- design-patterns - 使用 R 包为三种结果实施贝叶斯 I/II 期剂量寻找设计
- python - 如何安装 Farasa 词干分析器?
- c# - 在哪个版本的 C# 中引入了三元运算符?
- javascript - 带有查询参数的 Testcafe 模拟请求/响应
- c# - C#验证嵌套类的自定义数据类型(枚举)的属性内的属性
- mysql - 无法在新 Mac 上的 virtualenv 中安装 mysqlclient
- hadoop - hadoop fs -mkdir 文件名,输出:没有这样的文件或目录
- python - 使用 tensorflow 2.0 编写没有 numpy 数组的自定义损失函数进行图像分割时出现问题
- makefile - 如何调试为什么cmake(带有make后端)重建源代码?