如何在for循环中为2d数组赋值

时间:2020-04-30 18:30:53

标签: python arrays for-loop

我想为for循环中的2d数组赋值
这是我的代码

num = 0
n = 3
arr = [[0] * n] * n

for i in range(n):
    for j in range(n):
        arr[i][j] = num
        num +=1

我期望的输出是

[0, 1, 2]
[3, 4, 5]
[6, 7, 8]

但是实际输出是

[6, 7, 8]
[6, 7, 8]
[6, 7, 8]

有什么办法可以解决这个问题?

1 个答案:

答案 0 :(得分:2)

arr = [[0] * n] * n

它将创建n个列表副本。因此,当您在一个列表中进行更改时,所有其他列表也将更改。您可以将其更改为以下内容:

arr = [[0 for j in n] for i in n]
相关问题