Discuss / Python / 列表生成器_杨辉三角形

列表生成器_杨辉三角形

Topic source

向阳

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

思路:

1. append函数增加列表元素个数

2. L1储存L的值

3. 改变L去头去尾的列表值

def triangles():
    num = 1
    L = [1]
    while True:
        yield L
        num = num + 1 
        L.append(1)
        L1 = L[:]   #还可以用L1 = L.copy() ;不可以用L1 = L,L1的值会随着L的变化而变化。
        for i in range(1,num-1):
            L[i] = L1[i-1] + L1[i]

问题:

next函数可以实现杨辉三角形,但是测试时发现每一行都是第10行元素的值。待解决。

def triangles():
    L = [1]
    while True:
        yield L
        L = [1] + [L[i] + L[i + 1] for i in range(len(L) - 1)] + [1]

向阳

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

Mark:

range(0)为空

range(1)的元素为0

列表生成式用于生成去除头尾的列表值

两个列表相加等于合并这两个列表


  • 1

Reply