构造python列表的不同方法会影响修改列表的行为吗?

时间:2017-07-24 06:16:51

标签: python list matrix

在Python 2.7.11中,我以这种方式创建了一个二维列表:

array1 = [[0]*2]*2  
array2 = [[0 for i in range(2)] for j in range(2)]  

他们都给了我[[0,0], [0,0]],但是当涉及到修改时,他们会得到不同的答案:

array1[0][0] = 1  
array2[0][0] = 1  

现在array1 = [[1,0], [1,0]]array2 = [[1,0], [0,0]]。显然,array2是我的预期,但任何想法为什么array1表现不同?我假设array1正在复制第一行以创建矩阵,因此对其中一行的任何修改也会影响其他行。但是我一直使用[None] * size来初始化一维列表,它一直很好。

0 个答案:

没有答案