要产生3*4的二维数组,我首先想到的是用下面的代码:
>>> value=[[0]*4]*3
这虽然能产生16*6的二维数组,但在修改数组内容时发现:同一列的数据会同时改变时刻保持一致,如:
>>> value[1][2]=3
>>> print(value)
[[0, 0, 3, 0], [0, 0, 3, 0], [0, 0, 3, 0]]
http://www.cnblogs.com/btchenguang/archive/2012/01/30/2332479.html中说翻阅The Python Standard Library 找到答案:list * n—>n shallow copies of list concatenated, n个list的浅拷贝的连接
并提出了产生正确数组的方法:
>>> value=[[0]*4 for i in range(3)]
>>> value[1][2]=3
>>> print(value)
[[0, 0, 0, 0], [0, 0, 3, 0], [0, 0, 0, 0]]