二维数组意外分配错误

2024-04-24 22:35:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我想创建一个二维阵列,如下所示:

grid[y][x] 

所以有y个行数和x个列数。在

下面是我的方法,但是当我试图将数组的(0,0)赋值为包含值“2”时,代码将每个子数组的第一个值赋给“2”。在

为什么会这样?我应该如何pythonical实例化一个2D数组?在

^{pr2}$

Tags: 实例方法代码数组grid赋值列数pr2
2条回答
grid = [[None]*n for i in range(n)]

当您使用*创建多个引用时,它不会复制数据 所以当你把第一行修改为

[here,none,none,none] 

你真的改变了所有的线条。在

解决方案

^{pr2}$

编辑(从其他帖子)因为只有列表是可变的(可以就地更改),你也可以这样做

[[None]*n for j in range(n)]. 

每一行仍然是唯一的。如果None对象可以就地更改,这将不起作用。在

相关问题 更多 >