【发布时间】:2011-12-06 04:48:04
【问题描述】:
我正在 Python 中实现 Dijkstra 搜索算法。在搜索结束时,我使用前驱图重建最短路径,从目标节点的前驱开始。例如:
path = []
path.append(destination)
previous = predecessor_map[destination]
while previous != origin:
path.append(previous)
previous = predecessor_map[previous]
有没有什么办法可以用更少的代码行(例如列表理解)?
【问题讨论】:
-
这很清楚。不要试图让它成为一个班轮来破坏它。我想你可以创建一个迭代器来产生每个前任并对其使用列表推导,但这只是隐藏了逻辑。
-
你真的没有一个列表可以在理解中迭代,所以我猜没有。您的代码很简单,您可能完成的任何事情都将是纯代码高尔夫。
标签: python list search dictionary dijkstra