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

如何解决「Value after * must be an iterable, not int」错误?

解决「Value after * must be an iterable, not int」报错的方法
  • 报错原因:使用*解包语法时,被解包的对象是整数(int类型),但*要求后面必须是可迭代对象(比如列表、元组、字符串、生成器等),整数不属于可迭代类型,因此触发报错。

  • 常见场景与解决示例:

    1. 直接解包整数的错误用法
      print(*5)  # *后是int,触发报错
      
      解决:把整数包装成可迭代对象,比如列表或元组
      print(*[5])  # 用列表包裹后可正常解包输出
      
    2. 函数传参时错误解包整数
      def add(a, b):
          return a + b
      add(*10)  # 报错
      
      解决:若要传递单个参数,直接去掉*;若要拆分整数的每一位作为参数,先转成可迭代类型
      add(*list(map(int, str(10))))  # 将10拆为1和0,返回1
      
  • 排查要点:

    • 定位代码中所有*的使用位置,检查*后方对象的类型
    • 确认是否真的需要解包操作,若只是传递单个值,直接移除*即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 21:31:11