Discuss / Python / 生成器

生成器

Topic source

emmm,有点难度的。。。

def triangles():
    L = [1]
    while True:
        yield L[:]
        #L+=[0]
        #L = [L[i]+L[i-1] for i in range(len(L))]
        # 有没有办法2行就搞定呢?
        #L = [1] + [L[i]+L[i+1] for i in range(len(L)-1)] + [1]
        #L = [L[i-1]+L[i] if (i is not 0) or (i is not len(L)) else 1 for i in range(len(L)+1)]     #错了。。。这样会造成index溢出
        L = [1 if (i is 0) or (i is len(L)) else L[i-1]+L[i] for i in range(len(L)+1)]

  • 1

Reply