iter() 获取迭代器
最后更新:2026-09-22
iter() 获取迭代器
iter(obj) 返回 obj 的迭代器;iter(callable, sentinel) 返回一个迭代器,反复调用 callable 直到返回 sentinel。
| 分类 | 内置函数 |
|---|---|
| 类型 | 内置函数 |
| Python 版本 | all |
📝 语法
iter(object[, sentinel])
⚙️ 参数
| object 必选 | 可迭代对象;配合 sentinel 时必须是可调用对象。 |
|---|---|
| sentinel 可选 | 哨兵值:反复调用 object,直到其返回该值时停止迭代。(默认值:None) |
返回值:返回迭代器对象:单参数形式为 obj 的迭代器,双参数形式为 callable 驱动的迭代器。
💥 异常
TypeError— object 不可迭代且未提供 sentinel 时抛出。
▶ 示例
编辑下方代码,点击运行,在输出面板查看结果:
运行结果:
1 2
🏷️ 相关内置函数
💡 相关案例
更多实战案例即将上线,敬请期待。
❓ 常见问题
Qiter() 和 next() 是什么关系?
Aiter(obj) 拿到迭代器,next(it) 逐个取元素;for 循环内部就是 iter() + next() 的组合。
Qiter(func, sentinel) 双参数形式是干嘛的?
A反复调用 func,直到它返回 sentinel 时停止迭代,如 iter(lambda: input(), 'quit'),适合“读到结束标记为止”的场景。
Q什么样的对象能传给 iter()?
A实现了 __iter__(list、dict、str、set 等)或序列协议 __getitem__ 的对象;传整数等普通对象会抛 TypeError。
Qiter() 是惰性的吗?
A是,iter() 只创建迭代器不做实际遍历,真正取值发生在 next() 或 for 循环时。