Skip to main content
 首页 » 编程设计

2点之间的Python最短路径

2025年05月04日16itcoder

我发现许多算法和方法都在谈论寻找两点之间的最短路径,但我遇到的数据建模为:

[(A,B),(C,D),(B,C),(D,E)...] # list of possible paths 

如果我们假设我需要从 A 到 E 的路径,结果应该是:

(A,B)=>(B,C)=>(C,D)=>(D,E) 

但我找不到进行此搜索的 pythonic 方式。

请您参考如下方法:

Pythonic 方式是使用存在的模块。在这种情况下,我们知道,networkx在那里,我们可以写

实现

import networkx as nx 
G = nx.Graph([('A','B'),('C','D'),('B','C'),('D','E')]) 
path = nx.shortest_path(G, 'A', 'E') 

输出

zip(path, path[1:]) 
[('A', 'B'), ('B', 'C'), ('C', 'D'), ('D', 'E')]