首页 > 解决方案 > 在 python 中生成 n*n 网格时遇到问题

问题描述

我有一个程序接收一个标记为 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]

我怎样才能做到这一点?

标签: pythonarrays

解决方案


推荐阅读