在二维数组的单行中分配值会将其复制到所有行

时间:2019-09-17 23:03:06

标签: python list multidimensional-array

我使用Python创建了一个二维列表

x = [[0] * 4] * 4
print x
# Output:[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]

当我尝试仅将数组中的第一个列表初始化为[0,1,2,3]时,它将对数组中的所有列表重复。有什么线索可以解决吗?

for j in range(4):
  x[0][j] = j
print x
# Output: [[0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3]]
# whereas I was expecting [[0, 1, 2, 3], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]

0 个答案:

没有答案