美文网首页
Python生成器

Python生成器

作者: 贝塔Man | 来源:发表于2018-04-20 14:13 被阅读0次

生成器(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'

相关文章

网友评论

      本文标题:Python生成器

      本文链接:https://www.haomeiwen.com/subject/ixqqkxtx.html