我正在用 Python 实现 Dijkstra 搜索算法。在搜索结束时,我使用前驱图重建最短路径,从目标节点的前驱开始。例如:
path = []
path.append(destination)
previous = predecessor_map[destination]
while previous != origin:
path.append(previous)
previous = predecessor_map[previous]
有什么方法可以用更少的代码行来做到这一点(例如列表理解)?
我唯一的建议是消除轻微的代码重复:
path = []
previous = destination
while previous != origin:
path.append(previous)
previous = predecessor_map[previous]
除此之外,我认为您的代码实际上非常清晰,并且不太可能从任何缩短它的尝试中受益。
最后,值得注意的是,上面的方法也适用于destination == origin
,而您的原始版本很可能没有(取决于具体如何predecessor_map
已填充)。不知道这是否与您的用例相关。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)