频道栏目
首页 > 资讯 > Python > 正文

python生成器的理解

18-01-18        来源:[db:作者]  
收藏   我要投稿

python生成器的理解

这里写代码片
"""生成器只有在调用时才会生成相应的数据,这种方式不同于列表生成器,列表只要设定,它的数据就已经生成"""
'''生成器的一个next函数只能一个一个打印数字,注意是一个一个按顺序,而不能倒退回去'''
'''生成器的格式如下'''

#生成器的第一种简便方式
c=(i*2 for i in range(10)) #这个生成器有一个__next__()函数
print(c.__next__())
print(c.__next__())#这种形式的生成器一次只能调用一个数据,这样可以极大的节省内存空间
#生成器的第二种方式:以函数方式制作一个生成器,以费波那契数列为例子,当然前提是你得知道费波那契数列的原理
(1)
`def fib(max):
    n,a,b=0,0,1
    while n<max:
        print(b)#只需要将此处的print改为yield即可 
        a,b=b,a+b #这个地方类似一个元组(a,a+b)
        n=n+1
    return 'done'
fib(100)
(2)

def fib(max):
    n,a,b=0,0,1
    while n<max:
        yield b#这样就通过函数的方式生成了一个生成器
        a,b=b,a+b #这个地方类似一个元组(a,a+b)
        n=n+1
    return 'done'
fib=fib(100)
print(fib.__next__())
print(fib.__next__())#通过这种方式可以间断调取生成器里边的值,第一种不能间断调取
相关TAG标签
上一篇:C#进制的转化、运算符和表达式(+-*/%i++、++i)讲解
下一篇:Python:Reverse Words in a String III题解
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站