python - 字典不可下标
问题描述
我有一个很大的代码,我需要在其中使用这个函数,这个函数非常简单,它以 ( dict
, int
) 作为参数并在其中创建一个字典,我们必须在程序运行时对其进行初始化。错误恰好发生在candidate["permutation"] = stochastic_swipe(best["permutation"])
我已经检查过Best
的不是 None 的行中,而这里的 None 对象是candidate
.
def ILS(best, maxIter):
while maxIter>0:
candidate ={}
candidate["permutation"] = stochastic_swipe(best["permutation"])
candidate["cost"] = total_cost(candidate["permutation"])
if candidate["cost"] < best["cost"]:
best = candidate
maxIter -=1
return best
Best
就这样被通过
{'permutation': [0, 799, 334, 816], 'cost': 19208.973827922397}
解决方案
显然,您正在调用此函数None
作为第一个参数。我们可以从您的代码中看到candidate
它始终是一个字典,但直到这一行:
best = candidate
被执行,best
就是你传递给函数的内容。
推荐阅读
- c++ - 读取一行并使用下一行信息c ++
- python - 如何在 Python 中使用多记录器
- python - Seaborn 图在一个月的开始和结束时显示两个标签
- javascript - 反应原生:有办法只在native-base lib的手风琴的3选项卡中定位图标吗?
- elasticsearch - 无法启动面临权限问题的logstash
- rust - 如何从 GTK Treeview 中清除或删除项目?
- c# - 无法使用空格作为分隔符拆分列表内容 - C#
- html - HTML && CSS 输入边框移动
- python - matplotlib tab10 调色板的十六进制代码是什么?
- jenkins - 从 GitLab 到 Jenkins 的 Webhook 返回 HTTP 404