首页 > 解决方案 > 放置一个额外的 minimum_cost_node = None 来做变量声明

问题描述

我正在学习 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在标题部分付出额外的努力?

标签: python

解决方案


它处理空costs字典的特殊情况。

当前代码优雅地返回None,而您建议的修改将在运行时失败并出现UnboundLocalError异常。

PS您的代码中有几个错误,但我没有解决它们,因为您的问题与它们无关。


推荐阅读