给定自定义边缘权重,计算Networkx中的最短路径

时间:2018-04-12 04:59:23

标签: python graph networkx

我正在尝试为每条边分配长度属性,并根据这些长度计算从节点X到节点Y的最短路径。

但是,我不确定如何正确引用我在代码的这一部分中指定的长度属性:
result = {} cl = None for i in ints: if cl is None or i - 1 != cl[-1]: cl = result.setdefault(i, []) cl.append(i)

代码:

nx.shortest_path(G,source='Dehli',target='Pune', weight = ?????)

1 个答案:

答案 0 :(得分:0)

documentation,对shortest_path的调用形式为shortest_path(G, source=None, target=None, weight=None)

可选参数weight

  

权重(无或字符串,可选(默认=无)) - 如果为无,则每条边都有权重/距离/成本1.如果是字符串,请使用此边缘属性作为边权重。任何不存在的边缘属性都默认为1.

因此,在您的情况下,请将其称为path = nx.shortest_path(G,source='Dehli',target='Pune', weight='length')。请注意,Networkx采用边缘属性length=X并将其存储在字典中,其中包含键'length'(字符串)和值X