PyCraft
进阶

迭代器与生成器

iter、next、yield,惰性求值,LeetCode 与刷题常用

迭代器与生成器

迭代器按需产出元素,生成器用 yield 写迭代器,省内存、可表示无穷序列。

迭代器 iter / next

可迭代对象(list、range、dict...)可用 iter() 得到迭代器,用 next() 取下一个;没有下一个会抛 StopIteration

加载代码编辑器中…

生成器 yield

函数里用 yield 就变成生成器函数,调用后返回生成器(一种迭代器),每次 next() 执行到下一个 yield 为止。

加载代码编辑器中…

惰性求值

生成器按需算,不一次占满内存,适合大序列或无穷序列。

加载代码编辑器中…

小结

  • 迭代器iter(obj)next(it)for 依赖可迭代/迭代器。
  • 生成器yield 函数 或 (x for x in ...),惰性、省内存。
  • LeetCode 里常用 yield 做「按需遍历」或「流式结果」。