2024-04-24 22:35:01 发布
网友
我想创建一个二维阵列,如下所示:
grid[y][x]
所以有y个行数和x个列数。在
下面是我的方法,但是当我试图将数组的(0,0)赋值为包含值“2”时,代码将每个子数组的第一个值赋给“2”。在
为什么会这样?我应该如何pythonical实例化一个2D数组?在
grid = [[None]*n for i in range(n)]
当您使用*创建多个引用时,它不会复制数据 所以当你把第一行修改为
*
[here,none,none,none]
你真的改变了所有的线条。在
解决方案
编辑(从其他帖子)因为只有列表是可变的(可以就地更改),你也可以这样做
[[None]*n for j in range(n)].
每一行仍然是唯一的。如果None对象可以就地更改,这将不起作用。在
None
当您使用
*
创建多个引用时,它不会复制数据 所以当你把第一行修改为你真的改变了所有的线条。在
解决方案
^{pr2}$编辑(从其他帖子)因为只有列表是可变的(可以就地更改),你也可以这样做
每一行仍然是唯一的。如果
None
对象可以就地更改,这将不起作用。在相关问题 更多 >
编程相关推荐