需求
- 使用Python生成器生成杨辉三角
实现思路
- 杨辉三角特性
1
/ \
1 1
/ \ / \
1 2 1
/ \ / \ / \
1 3 3 1
/ \ / \ / \ / \
1 4 6 4 1
/ \ / \ / \ / \ / \
1 5 10 10 5 1
- 看图都应该能明白
- 调用方法 每次返回一个 list 直接上代码
def createList(x=12):
L = [1] #第一行
i = 2
while i <= x:
yield L
if i == 2: #第二行
L = [1, 1]
if i > 2: # 3,4,5..行
#首尾都是[1] 第二个元素为上一行的1,2元素之和 用列表生成式生成列表
result = [1] + [L[s - 1] + L[s] for s in range(1, len(L))] + [1]
L = result[:]
i += 1
r = createList()
for re in r:
print(re)