我想創建初始設置爲0Pythonic創建2d數組的方法?
這是我會怎樣想做到這一點整數值的二維數組:
grid = [[0] * width] * height
但是,這僅僅是創建每一行作爲參考的原始資料,所以做類似
grid[0][1] = 1
將修改所有grid [n] [1]值。
這是我的解決方案:
grid = [[0 for x in range(width)] for y in range(height)]
感覺不對,有沒有更好的更Python的方式來做到這一點?
編輯: 獎金的問題,如果網格大小永遠不會改變,只會包含整數,我應該使用像tuple或array.array而不是?
爲什麼不:'[0] *寬* height' – zeffii
@zeffii這將只創建一個列表'[0] *寬]'(認爲這是'l1'),並創建一個列表其中'height'元素中的所有元素都是對'l1'的引用。所以,更改任何列表也會反映在所有其他列表中。 – thefourtheye
優秀,謝謝! – zeffii