我有以下代码
visited = [[false]*4] * 3
它向我展示了2-D数组
[[false, false, false, false], [false, false, false, false], [false, false, false, false]]
现在,我希望更改第1行第2列的元素,如下所示:
[[false, false, false, false], [false, false, false, false], [false, false, false, false]]
^
所以我做了以下几件事:
visited[1][2] = 1
但现在当我判断2-D数组时,我得到以下输出:
puts visited.inspect
> [[false, false, 1, false], [false, false, 1, false], [false, false, 1, false]]
我似乎不明白为什么同一列索引中的所有行都由1填充?
Edit:
我try 通过手动输入所有元素(不乘以数组)来初始化我的数组visited
,它工作得很好.我想知道为什么会是这样?抱歉,如果这不是这样做的适当约定,我来自于Python背景.