迭代器以及生成器

迭代器的特点:

1. 省内存
2. 惰性机制, 不访问__next__() 就没有值.
3. 只能向前. 不能反复.

生成器的特点

本质就是迭代器, 生成器函数. 就是把return换成yield

迭代器函数:

def func():

  pint("真好")

  return "还不错"

如果直接执行函数func() 会打印"真好"

n = func(),然后再打印n的话会打印" 真好",然后返回值"还不错"

生成器函数:

def func():

  print("真好")

  yield "还不错"

直接执行函数不会有任何显示.

n = func(),可以获得一个生成器对象

然后执行print(n.__next__())遇到第一个yueld会停止运行,如果继续执行会报错StopIteration

两种方式写生成器

  1. 生成器函数
  2. 生成器表达式

 生成器的表达式(结果 for循环 if判断)

原文地址:https://www.cnblogs.com/lowen107/p/9891156.html