Skip to main content
 首页 » 编程设计

python之获取networkx graph python中邻居节点的属性

2025年05月04日13EasonJim

我想获取 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]