生成器(generator)是用来创建数据序列的一种对象,使用它可以迭代庞大的序列,且不需要在内存中创建和存储整个序列(避免了占用内存),而只是在你使用它的时候它才会一个一个生成,这对性能是一个很大的帮助。生成器就是一种迭代器,你可以把生成器放在in的后边,这样每一次迭代中,会从生成器中取下一个数出来,直到生成器不再产生新的数据对象。
如果需要生成的序列比较简单,直接一行推导式就可以完成。但如果要创建一个比较大的序列,生成器推导式将会比较复杂,一行表达式无法容纳,这时可以定义生成器函数。
生成器函数的定义和普通函数相同,只是将return换成了yield就变成生成器函数。
yield语句和return语句的区别:
yield语句和return语句的区别接着我们看一个生成器函数例子,函数even_number返回一个生成器对象:
def even_number(max):
n = 0
while n < max:
yield n
n += 2
for i in even_number(10):
print (i)
输出结果如下:
输出结果这就是生成器的应用,我们在处理大量数据的时候就能获得很好的性能。
网友评论