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

Python动态创建二维数组所有子数组相同的问题求解

问题原因
  • 核心问题是Python中列表是可变的引用类型,你在循环外部仅初始化了1次x = [1, 1, 1],后续所有循环中修改的都是同一个列表对象的内容
  • 每次执行arr.append(x)时,实际是将同一个x的内存引用添加到arr中,而非复制当前x的内容存入arr
  • 循环结束后x最终被修改为[1, 10, 100],arr中所有引用指向同一个对象,因此所有子数组输出结果都相同
修复方案

只要每次循环时都创建新的列表对象存储当前行的内容即可,修改后的代码如下:

rows = 10
cols = 3
arr = []

for i in range(rows):
    # 每次循环新建空列表存储当前行,避免共用同一个引用
    x = []
    for j in range(cols):
        x.append((i + 1) ** j)
    arr.append(x)

print(arr)

也可以使用列表推导式实现更简洁的写法:

arr = [[(i+1)**j for j in range(3)] for i in range(10)]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 15:27:02