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

Python嵌套循环使用报错:'function'对象不可迭代,求排查解决

解决TypeError: 'function' object is not iterable问题

问题重现

你参考的嵌套循环示例代码:

students = [['Igor', 'Sokolov'], ['Riko', 'Miyazaki'], ['Tuva', 'Johansen']]
for student in students:
   for name in student:
       print(name)
   print()

你编写的id_validator函数:

def id_validator(verified_ids,feedback_ids):
    for ids in id_validator:
        for x in ids:
            print(x)
id_validator([5, 8], [5,8,30,50])

期望输出:

5
8
5
8
30
50

实际报错:TypeError:'function' object is not iterable


问题原因

函数内部的for ids in id_validator是错误的:这里的id_validator是你定义的函数对象,而不是传入的参数。函数本身不能被迭代,因此触发类型错误。


解决方案

把传入的两个参数verified_ids和feedback_ids组合成一个可迭代的列表,作为外层循环的遍历对象:

修正后的代码

def id_validator(verified_ids, feedback_ids):
    # 将两个输入参数封装为列表,作为外层循环的迭代源
    for ids in [verified_ids, feedback_ids]:
        for x in ids:
            print(x)

id_validator([5, 8], [5,8,30,50])

运行后会输出你期望的结果:

5
8
5
8
30
50

进阶优化(支持任意数量的输入序列)

如果需要处理更多输入参数,可以使用可变参数*args,让函数更灵活:

def id_validator(*args):
    # args会接收所有传入的位置参数,组成一个元组
    for ids in args:
        for x in ids:
            print(x)

# 可以传入任意数量的序列
id_validator([5, 8], [5,8,30,50])
# 也可以这样调用:id_validator([1,2], [3,4], [5,6,7])

内容的提问来源于stack exchange,提问作者gizem kurşova

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 15:40:09