迭代器是一个可以记住遍历位置的对象,从集合的第一个元素开始访问,直到所有元素访问结束。迭代器只能从前往后遍历对象,不能回退。迭代器对象可以用for语句或while语句来遍历。
使用了yield的函数被称为生成器,它会返回一个迭代器的函数,是一种特殊的迭代器。在调用生成器运行的过程中,每次遇到yield时函数会暂停并保存当前运行的信息,返回yield的值,等待被重新唤醒后从当前位置继续运行。
区别:生成器是生成元素的,迭代器是访问集合元素的一中方式。迭代输出生成器的内容。生成器可以做迭代器可以做的事,但迭代器不能生成元素。
参考资料:Python迭代器和生成器