python - 放置一个额外的 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
在标题部分付出额外的努力?
解决方案
它处理空costs
字典的特殊情况。
当前代码优雅地返回None
,而您建议的修改将在运行时失败并出现UnboundLocalError
异常。
PS您的代码中有几个错误,但我没有解决它们,因为您的问题与它们无关。
推荐阅读
- scala - 如何使用依赖路径的类型类
- azure-cosmosdb - What happens if I loop indefinitely in a stored procedure?
- algorithm - 你能说出这个音频压缩算法的名字吗?
- java - 在 Java 中将字符串解析为双精度时出错
- google-cloud-platform - Google Cloud Datastore - 插入一个请求后获取
- python-3.x - 无法使用 Python 和 Cerberus 验证重复值的列表
- dll - VS2019项目在运行时加载一个dll而不是使用静态库
- razor - 链接在本地索引页面上有效,但在部署时无效
- mysql - 命令跟踪用户回滚并查看哪个用户正在提交最大手动回滚
- c# - 如何为 ASP.NET core 2.1 项目启用外部连接?