怎么理解Python的迭代器、生成器和迭代对象

1. 概念理解

迭代是Python语言的强大功能之一,主要用来对集合元素进行访问。

  • 可迭代对象(iterable)
    • 实现了iter()方法,该方法返回一个迭代器对象
    • 只是一种叫法,不是Python的数据类型
    • 序列(list/tuple/str)都是可迭代的对象
    • 容器(dic/set)也是可迭代对象
  • 迭代器(iterabor)
    • 任何实现了iternext方法的对象都是可迭代器
    • 迭代器不会一次性加载所有的元素,而是需要的时候生成
  • 生成器(generator)
    • 特殊的迭代器
    • 不用实现iternext方法
    • 使用yield而不是return
    • 返回一个迭代器
2. 创建迭代器
  • 使用内置函数iter()
  • 使用yield
  • 使用itertools模块
    • 产生不同类型的迭代器
    • 函数或类
3. 迭代器的特点
  • 惰性取值:比较适合读取大文件和无线集合
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转载自:深入讲解Python中的迭代器和生成器 在Python中,很多对象都是可以通过for语句来直接遍历的,例如...
    bobobe阅读 4,645评论 2 4
  • 更深入理解 Python 中的迭代 深入探讨 Python 的 for 循环来看看它们在底层如何工作,以及为什么它...
    lvyz0207阅读 7,212评论 3 10
  • 这几个玩意比较绕,虽然平时用起来一般没什么问题,但看一些文档的时候,什么iterable, iterator一不留...
    Woko阅读 5,086评论 1 2
  • 住的这个小区也建好几年了,怎么周围一直在装修,钻啊钻啊。于是开大音乐,挡住钻的声音,周期性重复的声音实在是乱人心绪...
    KevinCool阅读 4,227评论 1 1
  • 文芳在凌晨两点离开了那个小花坛回了宾馆。 她打开日记,看日记本上写着: 我洗好澡,做最细致的护理,淡妆,等待夜晚来...
    活成一只妖孽阅读 1,456评论 1 1