我想获取 networkx 图的相邻节点的属性。
import networkx as nx
G=nx.DiGraph()
G.add_node(10, time = '1PM')
G.add_node(20, time = '5PM')
G.add_node(30, time = '10PM')
G.add_edges_from([(10,20),(20,30)])
我想知道节点10或30的20的属性,节点20的10的属性。
这就是我开始接近但无法弄清楚的方式。
For node1, node2 in G.nodes(data =True):
print (G.neighbors(node1)['time'])
有什么办法吗?感谢您的帮助。
请您参考如下方法:
您可以使用 G.neighbors(x) 获取节点 x 的邻居的迭代器。例如,如果你想知道 x 的每个邻居的 "time" 参数,你可以简单地这样做:
for neighbor in G.neighbors(x):
print(G.nodes[neighbor]["time"])
由于您使用的是 DiGraph,因此仅考虑传出边以获得邻居,即:
print(list(G.neighbors(10))) # [20]
print(list(G.neighbors(20))) # [30]
print(list(G.neighbors(30))) # []
相反,在 Graph 中同时使用入边和出边:
print(list(G.neighbors(10))) # [20]
print(list(G.neighbors(20))) # [10, 30]
print(list(G.neighbors(30))) # [20]
