我試圖評估和修改嵌套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