python加权求和_在python上遍历图形时获取权重之和

我应该如何进行呢?

这是一项作业,我对此有很大的疑问.

现在,问题是我不能使用库.

我有一个像图:

{'A': {'C': 2, 'B': 10}, 'C': {'B': 7, 'D': 2}, 'B': {}, 'D': {'A': 5, 'B': 4}}

使用字典,取自文件.

但是,既然我拥有从一个点到另一个点的所有路径,我就需要对权重求和并获得全部成本.

如果您能帮助我,并指导我采取一些好的方法进行处理,我将不胜感激.

解决方法:

gr = {'A': {'C': 2, 'B': 10},

'C': {'B': 7, 'D': 2},

'B': {'E': 2},

'D': {'A': 5, 'B': 4, 'E': 3}

'E': {}}

def paths(gr, frm, to, path_len=0, visited=None):

if frm == to:

return [[to, path_len]]

visited = visited or []

result = []

for point, length in gr[frm].iteritems():

if point in visited:

continue

visited.append(point)

for sub_path in paths(gr, point, to, path_len + length, visited[:]):

result.append([frm] + sub_path)

return result

>>> print paths(gr, 'A', 'E')

[['A', 'C', 'B', 'E', 11], ['A', 'C', 'D', 'E', 7], ['A', 'B', 'E', 12]]

标签:graph-traversal,graph,python

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值