【问题标题】:How to assign value to 2d array in for loop如何在for循环中为二维数组赋值
【发布时间】:2020-08-15 05:25:57
【问题描述】:

我想在 for 循环中为二维数组赋值
这是我的代码

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]

有没有办法解决这个问题?

【问题讨论】:

标签: python arrays for-loop


【解决方案1】:
arr = [[0] * n] * n

它创建了 n 个列表副本。因此,当您在一个列表中进行更改时,所有其他列表也会更改。你可以把它改成这样:

arr = [[0 for j in n] for i in n]

【讨论】:

    猜你喜欢
    • 2021-06-09
    • 2020-08-19
    • 1970-01-01
    • 2019-06-02
    • 2016-01-17
    • 1970-01-01
    • 2014-01-10
    • 2016-06-28
    相关资源
    最近更新 更多