You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python 列表中使用tuple构建网格赋值异常如何解决?

问题原因

你的代码问题出在列表的引用机制上:Python中的列表是可变对象,你构建grid时往里面追加的是同一个row列表的内存引用,而非独立的行副本。

  • 你初始化了一个row列表后,三次执行grid.append(row)操作,最终grid里的三个元素指向的是内存中完全相同的一个列表对象。
  • 后续你修改任意grid[x][y]的值,本质都是修改同一个row列表对应位置的内容,最后一次赋值(也就是x=2时的赋值)会直接覆盖之前所有x对应的位置的赋值结果,所以最终输出每一列的三个值全是x=2时的赋值结果。

修复方案

你只需要每次新增行时都创建一个独立的新列表即可,两种常见写法参考:

写法1:循环创建独立行

grid = []
for x in range(3):
    # 每次循环都新建一个row列表,保证各行独立
    row = []
    for y in range(3):
        row.append((0,0))
    grid.append(row)

写法2:列表推导式(更简洁)

grid = [[(0,0) for _ in range(3)] for _ in range(3)]

修复后再执行你的赋值和打印逻辑,就会得到你预期的各个位置的(x,y)元组结果。


内容的提问来源于stack exchange,提问作者Arnaldo Montoya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 16:27:04