摘录自廖雪峰 python3 生成器
generator和函数的执行流程不一样。函数是顺序执行,遇到return语句或者最后一行函数语句就返回。而变成generator的函数,在每次调用next()的时候执行,遇到yield语句返回,再次执行时从上次返回的yield语句处继续执行。
看到一个比较巧妙的办法
def triangles():
nlist=[1]
while True:
yield nlist
nlist.append(0)
nlist = [nlist[i] + nlist[i-1] for i in range(len(nlist))]