gpt4 book ai didi

python - 二维数组意外赋值错误

转载 作者:行者123 更新时间:2023-12-04 05:59:44 42 4
gpt4 key购买 nike

我想创建一个二维数组,如下所示:

grid[y][x] 

所以有y行和x列。

下面是我这样做的方法,但是当我尝试将数组的 (0,0) 分配为包含值“2”时,代码将每个子数组的第一个值分配给“2”。

为什么会这样?我应该如何以python方式实例化一个二维数组?
n = 4 
x=0
y=0
grid = [[None]*n]*n

print grid

grid[y][x]='Here'

print grid

最佳答案

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

[here,none,none,none] 

您实际上更改了所有行。

解决方案
[[None for i in range(n)] for j in range(n)]

编辑(来自其他帖子)由于只有列表是可变的(可以就地更改),您也可以这样做
[[None]*n for j in range(n)]. 

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

关于python - 二维数组意外赋值错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9072294/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com