[1] [1,1] [1,2,1] [1,3,3,1]
......
方法:迭代,生成器
def triangles() l = [1] while true: yiled l l =[1] + [l[i] + l[i+1] for i in range(len(l)-1)] + [1] n = 0 for t in triangles(): print(t) n += 1 if n == 10: break
实现逻辑:
1.由于yield为生成器中断输出,所以有了第一个次输出为[1]
2.继续while下面的yield后的循环,此时list长度为1,将其代入l中的len(l),得出[l[i]+l[i+1] for i in range(1-1)]得出为空值,所以yield l输出为[1,1]
3.此时len(l)值为2,代入得出[l[i]+l[i+1] for i in range(2-1)]为[l[i]+l[i+1] for i in range(1)],i能取值为0,代入后为[l[0]+l[1]],而l[0]和l[1]的值均为1(有上面结果可知),所以输出结果为[1,2,1]
4.由第三条可知此时len(l)值为3,代入得出[l[i]+l[i+1] for i in range(2)],i取值为0和1,通过循环输出有两个值,均为3,分别由[l[0]+l[1]],[l[1]+l[2]]
以上就是python 杨辉三角方法的实例介绍的详细内容。
