python 语言生成器如何使用?

1.生成器定义

生成器是python中的一个对象(按照某种规律,来生成元素的对象),生成器不是列表,保存了产生元素的算法,同时会记录游标的位置(现在拿到第几个元素了),为了下次继续拿数据,而不是从头开始拿数据。可以通过一直调用next()方法获取值,这个对象不保存数据,每次调用会返回一个值,即做到了列表的好处,又不占用空间。

2.创建生成器

1)、函数中使用了关键字yield,那这个函数就不再是一个普通的函数了,而是一个生成器函数

2)、生成器函数调用时,不会执行函数内部的代码,会直接返回一个生成器对象

3)、关键字yield的作用是用来生成数据 yield data

第一种方法:通过类似于列表生成式来创建(将列表换为元组)

第二种方法:通过函数创建生成器(yield)

3.实列

生成器的定义和普通函数定义很类似,只是在函数中有yield关键字。python中定义,如果函数定义中出现yield,该函数就被当成生成器来对待。那么函数调用就不再执行具体函数指令,而只是返回一个生成器(也是一个迭代器),每次调用next,就执行函数具体代码,碰到yield的作用就是返回yield后续表达式的值,并且记录下当前的运行位置,停止运行,下次外部调用该生成器的next,可以从记录的返回点的下一句开始运行直到遇到下一个yield、return或者抛出异常等。

发表评论