首页 > 解决方案 > python中邻居节点的总权重

问题描述

我需要对邻居节点的总权重求和。例如,我有一个节点 (1),它的邻居是 (2) 和 (4)。它的边缘有一个权重: (1-2 , weight = 3) 和 (1-4, weight = 5)。然后,我需要总和权重 (8) 的结果。

我试过了:

sum_tot = []
for neigh in G.neighbors(1):
    sum_tot.append(G[1][neigh]['weight'])
sum(sum_tot)

但是结果 0 对 python 编程有什么想法吗?

标签: pythonnetworkingweighted

解决方案


我对 Python 很陌生,但您的问题似乎应该由 n 个节点的 nxn 矩阵表示。让矩阵中的每个条目表示列中每个节点与行中每个节点之间的权重。因此,您将在该位置用 3 表示节点 1 到 2 之间的距离。现在,Python 没有数组,但你可以用列表来做到这一点。

将此列表初始化为 0 后,您可以分配如下内容:

network[1][2]=3
network[2][1]=3
network[1][4]=5
network[4][1]=5

编写行和列操作以通过遍历矩阵来添加权重,从节点行开始,然后将节点行与列切换,然后重试。如果您在上一次迭代中找不到其他连接,那么您就结束了,需要从一个新节点开始并重复该过程。我会对每一行进行一次迭代,并打印出一个节点表和权重总和。希望这能给你一些想法。

希望我回答了你的问题。我是一名数学家,但是 Python 的业余爱好者。


推荐阅读