杨辉三角

def triangles(max):#max为行数
    n=1
    while n<max:
        if (n==1):
            yield [1]
            n=n+1
        elif(n==2):
            yield [1,1]
            n=n+1
            L=[1,1]
        else:    
            L2=L[:]#注意此处列表复制特殊格式!否则只是建立原列表的链接
            L3=L[:]        
            L2[0:0]=[0]#前插0
            L3.append(0)#后插0
            L=[L2[i]+L3[i] for i in range(min(len(L2),len(L3))) ]#对应项相加
            yield L
            n=n+1

triangles(8)#max为行数

 

posted @ 2018-03-21 21:51  木易不觉  阅读(76)  评论(0)    收藏  举报