Python生成器

生成器(generator)在Python中是为了解决内存不足而提出的一种方法,例如,我们要创建一个包含10万个元素的列表,这个列表不仅占用很大的存储空间,而且如果我们只需要访问前面几个元素,后面元素占用的空间就白白浪费了.于是Python中给出一种一边循环一边计算的机制,这就是生成器.

创建生成器的方法(genterator)

1.只要把一个列表生成式的[]改成(),就创建了一个generator

L=[x*x for x in range(5)]

g=(x*x for x in range(5))

g就是一个生成器.打印生成器的每一个元素,如果要一个一个打印出来,可以通过next()函数获取generator的下一个返回值:

next(g)

使用for循环,因为generator是一个可迭代对象:

g=(x*x for x in range(5))

for n in g:

        print(n)


2.在函数定义中包含yield关键字,这样该函数就不再是一个普通函数,而是一个generator:

def fib(max):

      n,a,b=0,0,1

       while n<max:

              yield b

               a,b=b,a+b

                n=n+1

       return  'done'

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。