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

Python列表扩展遇TypeError:int对象不可迭代问题排查与解决

问题拆解与解决方案

嘿,这问题我太熟了!咱们一步步来搞清楚:

错误原因

你用的extend()方法有个关键要求——它只能接收可迭代对象(比如列表、元组、字符串这类能逐个取出元素的东西)。但你的l2是[5,7],当你取l2[i]的时候,拿到的是单个整数(比如第一次循环取到5),整数不是可迭代对象,Python自然就报错说“int object is not iterable”啦。

而当l2是[[5],[7]]时,l2[i]是一个单元素列表(比如[5]),这是可迭代的,extend()就可以把列表里的5取出来加到l1[i]里,所以能正常运行。

两种适配l2 = [5,7]的修改方法

方法1:把单个整数包装成可迭代的单元素列表传给extend()

既然extend()要可迭代对象,那咱们把l2[i]装到列表里就行:

l1 = [[1,2],[3,4]]
l2 = [5,7]
for i in range(len(l2)):
    l1[i].extend([l2[i]])  # 把整数包进列表里
print(l1)  # 输出:[[1, 2, 5], [3, 4, 7]]

方法2:用append()代替extend()(更推荐)

其实你这里的需求是给l1的每个子列表添加单个元素,用append()更贴合场景——append()专门用来给列表加单个元素,不需要可迭代对象:

l1 = [[1,2],[3,4]]
l2 = [5,7]
for i in range(len(l2)):
    l1[i].append(l2[i])  # 直接加单个整数
print(l1)  # 输出:[[1, 2, 5], [3, 4, 7]]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:37:41