码迷,mamicode.com
首页 > 其他好文 > 详细

杨辉三角(生成器generator)

时间:2015-08-14 18:51:47      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:

生成器:(Python中,这种一边循环一边计算的机制,称为生成器:generator)
创建generator的方法:
1.把列表生成式的[]变为(),就创建了一个generator
例:
技术分享
技术分享
可以通过next()获得generator得下一个返回值
技术分享
技术分享
遍历的话可以直接用:
for i in g:
     print(i)
2.将函数中的print(b)改为yield b,如果一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个generator
 
杨辉三角,期待输出效果:
[1]
[1, 1]
[1, 2, 1]
[1, 3, 3, 1]
[1, 4, 6, 4, 1]
 
代码:

def triangles(max):   
    n,l = 0,[]
    while n <max:
        a=0
        k=[]     
        for i in l:          
            k.append(a+i)        
            a=i
        k.append(1)
        print(k)
        l=k
        n = n+1

if __name__=="__main__":
    triangles(5)
    

生成器方式
def triangles(max):   
    n,l = 0,[]
    while n <max:
        a=0
        k=[]     
        for i in l:          
            k.append(a+i)        
            a=i
        k.append(1)
        yield k
        l=k
        n = n+1
if __name__=="__main__":
    for t in triangles(5):
        print(t)

杨辉三角(生成器generator)

标签:

原文地址:http://www.cnblogs.com/meitian/p/4730841.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!