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

Python遍历列表调用max()报int不可迭代错误原因解析

问题核心原因

首先要纠正一个认知误区:你的代码里从来没有“遍历int类型”的操作,两个代码段的操作逻辑完全不是一回事:

  • 第一段for循环的迭代对象是data列表,列表本身是可迭代类型,循环的逻辑是每次从列表里取出一个存储好的int类型元素,赋值给变量i再打印。整个迭代过程的操作目标是列表,不是里面的整数。
  • 第二段报错的根源是max()函数的参数规则:max()支持两种传参方式:要么直接传入多个待比较的单独数值,比如max(1,3,5);要么传入一个可迭代的容器对象(比如列表、元组),函数会自己遍历这个容器找出最大值。你在循环里传给max()的i是从列表里取出来的单个整数,函数拿到参数后默认要遍历这个参数找最大值,但整数本身是不可迭代的,自然会抛出类型错误。

复现问题的完整代码

n,m,k=map(int, input().split())
data=list(map(int, input().split()))

for i in data:
  print(i)
# 正常输出结果:2 3 4 5 6 
for i in data:
  print(max(i))

运行抛出的报错信息

TypeError: 'int' object is not iterable

举个简单的正确用法参考:如果要找整个data列表的最大值,直接写print(max(data))即可,这时候传给max()的是可迭代的列表对象,不会触发报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 06:45:46