python - 放置额外的 low_cost_node = None 来进行变量声明

标签 python

我正在学习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/

相关文章:

python - sys.path 和 sys.executable 在 jupyter 中不正确,但没有应用的修复程序起作用

python - Pandas 情节 : fixing a color by value

python - 如何在查询集中使用 Django __time 查找

Python Tkinter 窗口图标不会导入新图标

python - 为什么 pickle numpy 数组的开销很大?

python - 尝试创建带有锁定的简单按钮推送播放

python - text.usetex : True in matplotlib 有什么好处

python - 查找给定日期的季度结束日期, Pandas

python - 如何从 notebook 中找到 jupyter notebook 的版本

python - 如何检查名字和姓氏是否为英文?