Python报错TypeError: object is not iterable 迭代问题求助与修复
问题根源
你犯了一个基础的类型错误:my_list = 123这行代码里,my_list被赋值为整数123,而不是你以为的列表。Python中,只有可迭代对象(比如列表、元组、字符串、生成器等)才能用for...in语句遍历,整数属于不可迭代类型,所以触发TypeError: object is not iterable。
修复方案
根据你的实际需求,有两种常见修复方式:
1. 遍历数字的每一位
如果你的目标是处理123的每一位数字(1、2、3),可以把整数转为字符串遍历,或者直接定义成数字列表:
# 方式1:将整数转为字符串遍历,再转回整数处理 my_num = 123 for char in str(my_num): element = int(char) # 这里写你的操作,比如打印翻倍后的值 print(element * 2)
# 方式2:直接定义包含目标数字的列表 my_list = [1, 2, 3] for element in my_list: # 执行你的操作 print(element + 5)
2. 遍历包含单个整数的列表
如果你的需求是处理整个整数123(只是把它放到列表里遍历),直接把整数放到列表中即可:
my_list = [123] for element in my_list: # 执行你的操作,比如加10 print(element + 10)
额外说明
你用整数测试没得到预期结果,核心原因就是整数本身不能被循环遍历,必须先将其转换为可迭代结构,或者直接定义为列表类型。
内容的提问来源于stack exchange,提问作者Latif
相关产品推荐
相关产品推荐

