迭代是数据处理的基石。扫描内存中放不下的数据集时,我们要找到一种惰性获取数据的方式,既按需一次获取一个数据项。这就是迭代器模式。
所有的生成器都石迭代器,因为生成器完全实现了迭代器的接口。不过根据《设计模式:可复用面向对象软件的基础》一书的定义,迭代器用于从集合中取出元素;而生成器用于"凭空"生成元素。
通过斐波那契数列能很好的说明二者之间的区别:斐波那契数列中的数有无穷个,在一个集合里放不下。不过要知道,再Python社区中,大多数时候把迭代器和生成器视为同一个概念。
流畅的python,Fluent Python 第十二章笔记 (可迭代的对象、迭代器和生成器)
原文:https://www.cnblogs.com/sidianok/p/12147577.html