代码改变世界

python 创建二维数组

2018-12-08 17:32  ZealouSnesS  阅读(2939)  评论(0)    收藏  举报

创建一个3*3的2维数组

错误方法1:

array = [0, 0, 0]
matrix = [array*3]
print matrix

输出:[[0,0,0,0,0,0,0,0,0]],错误

 

错误方法2:

array = [0, 0, 0]
matrix = [array] * 3
print matrix

输出:[[0, 0, 0], [0, 0, 0], [0, 0, 0]],看起来正确

但是:

matrix[0][1] = 1
print matrix

输出:[[0, 1, 0], [0, 1, 0], [0, 1, 0]],错误

为什么呢?因为matrix = [array] * 3操作中,只是创建3个指向array的引用,所以一旦array改变,matrix中3个list也会随之改变。

 

 

正确方法:

方法1 直接定义

matrix = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]

方法2 间接定义

matrix = [[0 for i in range(3)] for i in range(3)]

 

 

参考:https://www.cnblogs.com/woshare/p/5823303.html