我试图评估和修改嵌套for循环中嵌套列表的元素,但是当我尝试访问list [i-1] [j ]如何在python中正确访问嵌套列表中的元素
这工作:
for i in range(HEIGHT):
for j in range(WIDTH):
if nested_list[i+1][j].foo == 'bar' and nested_list[i][j+1].foo == 'bar':
nested_list[i][j].foo = 'bar'
但是当我使用I-1或j-1,而不是1以上它打破(插入棒作为值的所有元素)
for i in range(2, HEIGHT):
for j in range(2, WIDTH):
if nested_list[i-1][j].foo == 'bar' and nested_list[i][j-1].foo == 'bar':
nested_list[i][j].foo = 'bar'
编辑:
嵌套列表持有地图像这样:
##################
####.....#########
####.....#########
####.....#########
############....##
############....##
############....##
##################
使用的预期结果产生代码的第一比特时
,在矩形的右手侧的角部被变成#分别
当试图做'另一种方式',即评估左侧整个阵列填充#s (我希望是有道理的)
“我的代码打破”是什么意思?你有例外吗?如果是这样,请将追溯复制并粘贴到您的问题中。如果您得到错误的结果,请显示预期结果和实际结果。如果发生其他事情,请描述一下。 – abarnert 2014-10-18 00:32:49
另外,你为什么在这里使用'i-1'?你想要它做什么?给我们一些精简的样本输入,告诉我们你期望发生什么。 – abarnert 2014-10-18 00:34:25
没有例外,代码有效,但会产生意想不到的结果。所有元素都设置为'bar',就好像if语句被忽略 – pixel 2014-10-18 00:37:24