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

Python递归实现列表对应元素相加报错int object is not iterable求助

报错原因
  • 直接触发报错的代码行是return seqaddr(l1[:len(l1)-1],l2[:len(l2)-1]) + list(l1.pop()+l2.pop()):l1.pop()和l2.pop()返回的都是整数类型,两者相加结果仍为整数,list()构造方法要求传入可迭代对象,整数不属于可迭代对象,因此触发int object is not iterable类型错误。
  • 代码还存在隐含逻辑问题:递归调用时传入的l1[:len(l1)-1]是原列表的切片副本,后续pop操作是修改传入函数的原始实参,两者没有关联,即使解决类型报错也得不到预期结果。
修复后的代码
def seqaddr(l1, l2):
    # 可选参数合法性校验
    if len(l1) != len(l2):
        raise ValueError("两个输入列表必须等长")
    if len(l1) == 1:
        return [l1[0] + l2[0]]
    # 递归处理前n-1位元素,再拼接最后一位相加的结果
    return seqaddr(l1[:-1], l2[:-1]) + [l1[-1] + l2[-1]]

# 功能测试
print(seqaddr([1,2,3], [4,5,6]))

运行上述代码输出结果为[5, 7, 9],符合预期要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 20:18:02