2
我正在寫一個需要2d數組的程序,並且遇到了一個奇怪的問題。這兩個二維數組有什麼區別?
起初,我寫道:
board = [[]]*11
在一個陣列中做11個陣列。
然後我想11個坯料的每個陣列內,所以我寫道:
for i in range(11):
board[i].append(' ')
我想填充第三陣列,從索引4至7分,所以我寫:
for i in range(4, 7):
board[2][i] = '*'
但後來出乎意料的是,並非只有第三個陣列受到代碼的影響,「板子」中的所有陣列都發生了變化。
所以當然,我這樣寫道:
board2 = []
for i in range(11):
board2.append([])
創建我的數組,然後寫道:
for i in range(11):
for i in range(11):
board2[i].append(' ')
創建我的數組包含11個空格11個陣列。
在我創建了這樣的數組後,我能夠運行代碼來添加恆星,並且如預期的那樣,隻影響了一個數組而不是所有恆星。
請問有誰能解釋兩個看起來相似的數組有什麼區別?
謝謝你給我看一個較短的方式! – John 2011-03-22 21:05:57