Python的可迭代对象、迭代器以及生成器

可迭代对象、迭代器以及生成器

定义

  • 可迭代对象:实现了 _iter_() 方法的对象;
  • 迭代器:实现了 _iter_()next() 方法的对象;
  • 生成器:具有 yield 关键字的对象。
  • 迭代器是一种特殊的可迭代对象;
  • 生成器是一种特殊的迭代器,自动实现了迭代协议,即 _iter_() 和 next() 方法,无需自己定义。

内存使用

  • 迭代过程:任何可迭代对象传入到 for 循环或其他迭代工具中进行遍历时,迭代工具都是先通过 _iter_() 获得与可迭代对象对应的迭代器对象,然后对迭代器调用 next(),不断依次获取元素,并在捕捉到 StopIteration 异常时确定完成迭代。

  • 与 list 不同,迭代器每次迭代只取一个元素放入内存。




参考资料:
作者:张雨萌
链接:https://www.zhihu.com/question/56664006/answer/294504517

猜你喜欢

转载自blog.csdn.net/m_pNext/article/details/109427172