You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取NetworkX中无向边的权重?以节点5和4为例

如何获取NetworkX无向图中边的权重?

嗨,针对你这个问题,在NetworkX里获取无向边的权重其实很简单,结合你给出的代码,我给你两种常用的方法:

  • 直接通过节点对访问
    无向图的边是双向的,所以节点的顺序不影响结果。你可以直接通过G[u][v]访问边的属性字典,再取出weight键对应的值:
import networkx as nx
G=nx.Graph()
connections = [(0, 1, 4), (0, 7, 8), (1, 7, 11),(1, 2, 8), (2, 8, 2), (7, 8, 7), (7, 6, 1), (8, 6, 6), (2, 5, 4), (6, 5, 2), (2, 3, 7), (3, 5, 14), (3, 4, 9), (5, 4, 10), ]
G.add_weighted_edges_from(connections)

# 获取节点5和4之间的权重
weight = G[5][4]['weight']
print(weight)  # 输出:10

你也可以写成G[4][5]['weight'],结果完全一致。

  • 使用get_edge_data方法(更安全)
    如果你不确定边是否存在,推荐用get_edge_data()方法,它在边不存在时会返回None,避免抛出KeyError:
edge_info = G.get_edge_data(5, 4)
if edge_info is not None:
    weight = edge_info['weight']
    print(weight)  # 输出:10

补充说明:因为你用add_weighted_edges_from()添加边时,NetworkX默认会把权重存储在weight这个键下,所以直接取这个键就可以。如果你添加边时自定义了权重键名,记得换成对应的名称就行。

内容的提问来源于stack exchange,提问作者Sarath

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 20:28:09