我正在尝试为每条边分配长度属性,并根据这些长度计算从节点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 = ?????)
答案 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
。