python 二维数组(二维list)创建的坑
快速创建一维度list ,并修改
>>> l=[0]*3
>>> l
[0, 0, 0]
>>> l[0]=1
>>> l
[1, 0, 0]
>>>
快速创建二维度list ,并修改(有坑)
错误的创建
>>> l=[[0]*2]*3
>>> l
[[0, 0], [0, 0], [0, 0]]
>>> l[0][0]=1
>>> l
[[1, 0], [1, 0], [1, 0]]
#简单说下原因 matrix = [array] * 3操作中,只是创建3个指向array的引用,所以一旦array改变,matrix中3个list也会随之改变。
正确的创建
>>> l=[ [0]*2 for i in range(3) ]
>>> l
[[0, 0], [0, 0], [0, 0]]
>>> l[0][0]=1
>>> l
[[1, 0], [0, 0], [0, 0]]
>>>
另一 种创建(使用模块numpy创建)
import numpy as np
test = np.zeros((m, n), dtype=np.int)