什么是Python Generator(生成器)?
Python Generator(生成器)用于在内存资源有限的情况下,把处理大数据的任务,分解为一段一段可以管理和处理的数据块(chunk),建立起数据流(data pipeline),从而一步一步的解决完大数据任务的技术。例如,假设有500G的数据待处理,内存只有32G,我们可以把数据分为200M的数据块,然后借助Python Generator技术,实现一边加载数据一边进行数据处理的效果。
生成器关键字yield 与 函数返回语句return的区别:
return语句终止函数运行并返回return语句后面的变量值;return语句后面的语句不执行。
yield关键字,与next()语句配套使用,它仅仅告诉Python解释器,在我这里 暂停而不是终止,并返回yield关键字后面变量的值。当执行next()语句后,函数会继续执行,并再次遇到yield关键字是暂停。 生成器与迭代器配置使用时,要注意停止条件:
Python生成器可以由以下两种方式创建:
- 生成器函数 generator function
def myfunc():
yield value
- 生成器递推式 generator comprehension
gc = (i**2 for i in range(100))