Python Generator(生成器)

Python019

Python Generator(生成器),第1张

什么是Python Generator(生成器)

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

生成器关键字yield 与 函数返回语句return的区别

return语句 终止函数运行并返回return语句后面的变量值;return语句后面的语句不执行。

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

Python 中的 yield 关键字鲜为人知,但是作用却很大,正是因为有了yield,才有了Python生成器。

yield 是 Python 的关键字,它用于 从函数返回而不破坏其局部变量的状态 ,并且在调用该函数时,从最后一个 yield 语句开始执行。任何包含 yield 关键字的函数都称为生成器。

Python 中的 yield 关键字的作用类似于 Python 中的 return 语句,不同之处在于:

yield的优点

yield的缺点

Python 可以使用 括号() 创建生成器

更多时候,我们使用 yield 关键字创建生成器

下面这个生成器,前4次调用它时,返回的是0-3这几个特殊值,第5次调用它时返回一个10-20之间的随机整数。

更多时候,生成器可以返回无限的值。

注意 generator() 函数返回的是一个生成器对象,要想获取它的值,可以像上面那样在迭代器中取出它的值,我们也可以显式的调用next函数获取值。

Python | yield Keyword - GeeksforGeeks:https://www.geeksforgeeks.org/python-yield-keyword/

https://c.runoob.com/compile/9/