轻松搞定python迭代器
很多测开新手学 Python 到迭代器就卡住了,其实理解三个核心概念就够了👇
—
1️⃣ 什么是迭代器?
迭代器是一个实现了迭代协议的对象,包含两个方法:`__iter__()` 返回自身,`__next__()` 返回下一个值,没有数据了就抛 StopIteration 异常。
简单理解:像一个数据传送带,每次调用 next 取一个数据,取完自动停止。
—
2️⃣ 可迭代对象 ≠ 迭代器
可迭代对象是实现了 `__iter__()` 的对象,比如列表、字符串、字典、元组、集合。
迭代器是同时实现了 `__iter__()` 和 `__next__()` 的对象。
⚠️ 易错点:列表是常见的可迭代对象,但它本身不是迭代器,需要用 `iter()` 转换才能变成迭代器。
—
3️⃣ for 循环的幕后原理
我们平时写的 for 循环,Python 解释器在背后会自动做四件事:
① 调用 `iter()` 获取迭代器
② 循环调用 `next()` 取数据
③ 遇到 StopIteration 自动结束
④ 整个过程对开发者完全透明
理解这个,面试问 for 循环底层原理就稳了。