杨辉三角定义如下:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
把每一行看做一个list,试写一个generator,不断输出下一行的list:
代码来自https://baike.baidu.com/item/杨辉三角#4_10
第一个方法:
>>> def triangles():
... L=[1]
... while True:
... yield L
... L = [sum(i) for i in zip([0]+L,L+[0])]
...
>>> n = 0
>>> results=[]
>>> for t in triangles():
... print(t)
... results.append(t)
... n= n+1
... if n==10:
... break
...
[1]
[1, 1]
[1, 2, 1]
[1, 3, 3, 1]
[1, 4, 6, 4, 1]
[1, 5, 10, 10, 5, 1]
[1, 6, 15, 20, 15, 6, 1]
[1, 7, 21, 35,