首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python 2D数组意外覆盖

问Python 2D数组意外覆盖
EN

Stack Overflow用户
提问于 2020-05-05 07:42:49
回答 1查看 168关注 0票数 0

我正在简化一个用例,但是给出一个二维数组,我想在每一列用i的值覆盖第一列。但是,它不是覆盖单个单元格,而是在每一步覆盖整个列。

代码语言:javascript
复制
array = [[0,0,0], [0,0,0], [[0,0,0]]
for i in range(3):
    array[i][0] = i+1
    print(array)

预期输出:

代码语言:javascript
复制
[[1,0,0], [0,0,0], [[0,0,0]]
[[1,0,0], [2,0,0], [[0,0,0]]
[[1,0,0], [2,0,0], [[3,0,0]]

实际输出:

代码语言:javascript
复制
[[1,0,0], [1,0,0], [1,0,0]]
[[2,0,0], [2,0,0], [2,0,0]]
[[3,0,0], [3,0,0], [3,0,0]]

我怀疑调用range()会以某种方式影响这一点,但我不知道为什么。请解释一下为什么每次访问一个单元格都会覆盖整个列!

EN

回答 1

Stack Overflow用户

发布于 2020-05-05 12:05:44

我尝试了你的解决方案(减去第一行的额外方括号),我得到了你预期的结果。因此,您可能需要考虑如何构建输入数组。

代码语言:javascript
复制
input_array = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
for i in range(3):
    input_array[i][0] = i + 1
    print(input_array)

​

​

另一个具有相同答案的解决方案:

代码语言:javascript
复制
input_array = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
for (i, line) in enumerate(input_array):
    line[0] = i + 1
    print(input_array)

​

​

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61603453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档