我正在学习Dijkstran算法并阅读了以下代码:
#dijkstra algorithms
def find_lowest_cost_node(costs):
#cost is a dict
lowest_cost = float("inf")
lowest_cost_node = None
for node in costs:
cost = costs[node]
if cost < lowest_cost and cost not in processed:
lowest_cost = cost
lowest_cost_node = node
return lowest_cost_node
我对 lowest_cost_node
声明 lowest_cost_node = None
很好奇。
如果我将其注释掉,该功能将正常工作,
为什么要付出额外的努力将 lowest_cost_node = None
放置在 header 部分?
最佳答案
它处理空 costs
字典的特殊情况。
当前代码正常返回 None
,而您建议的修改将在运行时失败,并出现 UnboundLocalError
异常。
附注您的代码中有几个错误,但我不会解决这些错误,因为您的问题与它们无关。
关于python - 放置额外的 low_cost_node = None 来进行变量声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52940612/