二维列表

data = [[0]*c]*r

这个是错误的,因为r条指向同一个实例,改变其中一个其他的都变了,像copy一样

下面是我在idle上面运行的

>>> data=[[0]*2]*4
>>> data
[[0, 0], [0, 0], [0, 0], [0, 0]]
>>> data[2][0]=100
>>> data
[[100, 0], [100, 0], [100, 0], [100, 0]]
>>> data2=[[0]*2 for j in range(4)]
>>> data2
[[0, 0], [0, 0], [0, 0], [0, 0]]
>>> data2[2][0]=100
>>> data2
[[0, 0], [0, 0], [100, 0], [0, 0]]

不过我很少用列表,用的矩阵多,矩阵的话就x = np.zeros(shape=(2,4),dtype = float)

猜你喜欢

转载自www.cnblogs.com/stenci/p/10511288.html