Advertisement

Python基础-gen iter dom close decor(14)

阅读量:
生成器(generator)

在Python中将一边循环一边计算的机制命名为生成器

  • 通过调用next()函数获取生成器的下一个返回值
  • 生成器本质上是一个对象
  • 一旦迭代至生成器的最后一个对象时,继续尝试迭代将触发StopIteration异常
  • 对于循环结构而言,生成器确实是一个适用的选择,因为它们都是可迭代的对象。
  • 每个生成器只能被调用一次。
特点:
  1. 节省内存空间
  2. 在迭代到下一次的调用时继承自上一次的状态
生成器的创建:
  • lambda表达式创建生成器
复制代码
    a=(x for x in range(2))
复制代码
    %创建生成器
    In [1]: a=(x for x in range(2))
    
    In [2]: a
    %生成器是一个对象
    Out[2]: <generator object <genexpr> at 0x00000194EB894D58>
    
    In [3]: next(a)
    Out[3]: 0
    %next()进行迭代
    In [4]: next(a)
    Out[4]: 1
    
    In [5]: next(a)
    -----------------------

全部评论 (0)

还没有任何评论哟~