如何获取两个节点之间边缘的数据?

bec*_*cko 8 python networkx

我想获得networkx图中两个节点之间的边缘.更具体地说,我想获得与此边缘相关的一些数据.我先前知道这两个节点是链接的.有这个功能吗?

Joe*_*oel 12

边缘数据存储在字典中.要访问该字典,请使用get_edge_data().

import networkx as nx
G=nx.Graph()
G.add_edge(1,2, weight=5)
G.get_edge_data(1,2)
> {'weight': 5}
Run Code Online (Sandbox Code Playgroud)

如果要迭代可以使用的所有边 G.edges(data=True)

H = nx.Graph()
H.add_edge(2, 3, color = 'red')
H.add_edge(1, 2, weight = 4)
for u,v,data in H.edges(data=True):
    print(u, v, data)
> 1 2 {'weight': 4}
> 2 3 {'color': 'red'}
Run Code Online (Sandbox Code Playgroud)

  • 当我为一个在 1 和 2 之间有 2 个边的 `MultiGraph` 做 `G.get_edge_data(1,2)` 时,它给了我两个边和它们的权重。如果您有不同的体验,您可能应该发布一个新问题。[你确定这个图有多个边吗?- 如果它不是 `MultiGraph` 或 `MultiDiGraph`,那么每次添加一条边时都会覆盖上一条边] (2认同)