python中迭代器和生成器的区别是啥?
在网上搜了下,也没有看明白
什么是迭代器?迭代器是可以像我们在 for 循环中那样迭代的对象。我们也可以说迭代器是一个对象,它一次返回一个元素。也就是说,在我们明确要求他们的下一个项目之前,他们不会做任何工作。它们的工作原理在计算机科学中称为惰性求值。惰性求值是一种求值策略,它将表达式的求值延迟到真正需要它的值。由于 Python 迭代器的惰性,它们是处理无穷大的好方法,即可以永远迭代的可迭代对象。您几乎找不到不与迭代器配合使用的 Python 程序。
迭代器是 Python 的一个基本概念。您已经在第一个 Python 程序中了解到可以迭代容器对象,例如列表和字符串。为此,Python 创建了列表或字符串的迭代器版本。在这种情况下,迭代器可以被看作是一个指向容器的指针,它使我们能够迭代这个容器的所有元素。迭代器是一种抽象,它使程序员能够访问可迭代对象(集合、字符串、列表等)的所有元素,而无需深入了解该对象的数据结构。
生成器是一种特殊的函数,它使我们能够实现或生成迭代器。
大多数情况下,迭代器是隐式使用的,就像在 Python 的 for 循环中一样。
https://blog.csdn.net/pythonandaiot/article/details/122312653 可以看看这个
顾名思义,生成器用的时候再生成,迭代器是先准备好数据再迭代
生成器主要是节省内存,对于对大数据进行遍历的时候往往推荐生成器,要不然会出现爆内存的情况