先上图

python 可迭代对象、迭代器、生成器

三者的关系如图所示,接下来再用文字对其进行说明。(按 本人理解 来写的)

可迭代对象:

具有__iter__()方法的对象,就是可迭代对象,常见的有列表、字典、集合。

可迭代对象在实现了__iter__()方法后,就会生成迭代器。

迭代器:

具有__iter__()、next()方法,用__next__()方法来进行取值。主要特点为惰性求值(lazily produce),迭代器只保存基本的数据和生成数据的方法,调用__next__()时,才会具体计算并返回数据。这样的好处是在处理大数据时,不会占用电脑大量的空间资源,降低大数据处理的硬件要求。

生成器:

是一个特殊的迭代器。一般通过生成器表示和生成器函数(关键字为yield)产生。

tips:

python3中,range方法生成的是一个range对象(range object)具有迭代器的特性,但不是迭代器。

相关文章:

  • 2021-06-21
  • 2022-01-01
  • 2021-09-12
  • 2022-12-23
  • 2021-08-08
  • 2021-09-17
  • 2021-07-11
  • 2022-02-17
猜你喜欢
  • 2021-12-06
  • 2022-12-23
  • 2022-12-23
  • 2021-10-28
  • 2022-03-05
  • 2021-11-11
相关资源
相似解决方案