将学习变成乐趣,一直在路上
每天1990

导航

 
生成器:(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)
posted on 2015-08-14 18:19  每天1990  阅读(1475)  评论(0编辑  收藏  举报