Python Generator(生成器)

什么是Python Generator(生成器)
Python Generator(生成器)用于在内存资源有限的情况下,把处理大数据的任务,分解为一段一段可以管理和处理的数据块(chunk),建立起数据流(data pipeline),从而一步一步的解决完大数据任务的技术。例如,假设有500G的数据待处理,内存只有32G,我们可以把数据分为200M的数据块,然后借助Python Generator技术,实现一边加载数据一边进行数据处理的效果。

生成器关键字yield 与 函数返回语句return的区别
return语句终止函数运行并返回return语句后面的变量值;return语句后面的语句不执行。

Python Generator(生成器)_第1张图片
return语句

yield关键字,与next()语句配套使用,它仅仅告诉Python解释器,在我这里 暂停而不是终止,并返回yield关键字后面变量的值。当执行next()语句后,函数会继续执行,并再次遇到yield关键字是暂停。
Python Generator(生成器)_第2张图片
yield语句

生成器与迭代器配置使用时,要注意停止条件:
Python Generator(生成器)_第3张图片
StopIteration

Python生成器可以由以下两种方式创建:

  • 生成器函数 generator function
def myfunc():
    yield value
  • 生成器递推式 generator comprehension
gc = (i**2 for i in range(100))

你可能感兴趣的:(Python Generator(生成器))