Discuss / Python / 生成器generator输出杨辉三角

生成器generator输出杨辉三角

Topic source
def triangles():
    L = [1]
    while True:
        yield L

        Ln = [1]
        for i in range(1, int(len(L))):
            Ln.append(L[i - 1] + L[i])
        Ln.append(1)
        L = Ln


n = 0
for t in triangles():
    print(t)
    n = n + 1
    if n == 10:
        break

自己想的方法用了两个list,Ln头尾手动添加1,中间用于接收上行L算来的数据。

L.append(0)
        L = [L[i-1] + L[i] for i in range(len(L))]

而这个L.append(0)在原L后添个0,利用其性质使头尾也符合计算公式,简化了代码

0503Stefanie

#2 Created at ... [Delete] [Delete and Lock User]

厉害了。学习


  • 1

Reply