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

1. 概念理解

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

  • 可迭代对象(iterable)
    • 实现了iter()方法,该方法返回一个迭代器对象
    • 只是一种叫法,不是Python的数据类型
    • 序列(list/tuple/str)都是可迭代的对象
    • 容器(dic/set)也是可迭代对象
  • 迭代器(iterabor)
    • 任何实现了iternext方法的对象都是可迭代器
    • 迭代器不会一次性加载所有的元素,而是需要的时候生成
  • 生成器(generator)
    • 特殊的迭代器
    • 不用实现iternext方法
    • 使用yield而不是return
    • 返回一个迭代器
2. 创建迭代器
  • 使用内置函数iter()
  • 使用yield
  • 使用itertools模块
    • 产生不同类型的迭代器
    • 函数或类
3. 迭代器的特点
  • 惰性取值:比较适合读取大文件和无线集合

你可能感兴趣的:(怎么理解Python的迭代器、生成器和迭代对象)