Discuss / Python / 两个方法

两个方法

Topic source

第一个自己做的,比较麻烦,不过也可以直接得出杨辉三角的list

def triangles():
    L = []
    L.append([1])
    yield(L[0])
    L.append([1,1])
    yield(L[1])
    n=2    while True:
        L.append(list(range(n)))
        L[n][0],L[n][-1] = 1,1          L[n][1:-1] = [L[n-1][i-1]+L[n-1][i] for i in range(1,len(L[n-1]))]

        yield L[n]
        n = n+1

第二个是借鉴讨论区的答案的:

def triangles():
    Last = [1]
    yield Last

    while True:
        L = [1]
        for i in range(1,len(Last)):
            L.append(Last[i-1]+Last[i])
        L.append(1)
        Last = L[:]
        yield L

  • 1

Reply