我想创建初始设置为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