在 python 中生成 n*n 网格时遇到问题

时间:2021-07-09 11:42:56

标签: python arrays

我有一个程序,它接收一个标记为 n 的正整数,并将创建一个 n * n 数组,所有数组都包含零(例如,如果 n = 3,则创建一个 3x3 数组,所有数组都包含零)

row = [0] * n
grid = [row] * n

虽然这确实成功生成了 n*n 数组,但当我为一个元素分配一个值时,它会更改数组的多个值,而不是仅更改该一个元素。在下面的代码中,假设 n = 3

>>> print(grid)
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]

grid[0][0] = 1
>>> print(grid)
[[1, 0, 0], [1, 0, 0], [1, 0, 0]]

我希望更改只影响第一个数组中的第一个值,以便

grid = [1,0,0],[0,0,0],[0,0,0]

我怎样才能做到这一点?

0 个答案:

没有答案