我在编程练习中编写了以下代码:
q = lenP[0]*[lenP[1]*[0.]] # empty 2D array
for i in range(lenP[0]):
for j in range(lenP[1]):
hit = (Z == colors[i][j])
q[i][j] = (hit * sensor_right + (1-hit) * (1.-sensor_right)) * p[i][j]
如果我在循环内对其进行测试,则每个元素 q[i][j] 的值都是正确设置的。但是,如果我在循环之外打印任何 q[i][j],它就会恢复到其初始值 0。我想我在管理 python 对对象的引用时遗漏了一些东西,但那会是什么?
在正常设置中,我会使用 numpy 作为数组并完成它,但这是 Udacity 课程的代码(顺便说一下,机器人学的 IA,非常有趣)并且不允许导入任何内容。