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

Python根据x列表与y子列表长度生成嵌套递增列表的问题求助

错误原因

代码存在两个核心问题:

  • 临时列表l仅在循环外初始化一次:Python中列表为可变对象,每次z.append(l)存入的都是同一个列表的引用,后续对l的修改会同步影响z中已存入的所有元素
  • z.append(l)执行时机错误:先存入空列表再填充l,最终z中两个元素都会指向同一个存储了所有计算结果的列表

修正方案

写法1:调整原有循环逻辑

x = [0,2]
y = [['1','2','1'],['5','5','5','2','1']]
z = []

for i in range(len(y)):
    # 每次循环新建独立的临时列表
    l = []
    for j in range(len(y[i])):
        l.append(x[i]+j)
    # 列表填充完成后再存入z
    z.append(l)

print(z)

运行输出:[[0, 1, 2], [2, 3, 4, 5, 6]],完全符合预期。

写法2:更简洁的列表推导式实现

x = [0,2]
y = [['1','2','1'],['5','5','5','2','1']]
z = [ [start + step for step in range(len(sub_y))] for start, sub_y in zip(x,y) ]
print(z)

运行效果和上述代码完全一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 08:27:03