Python generator 的yield (enumerate)

生成杨辉三角

          1
        1   1
      1   2   1
    1   3   3   1
  1   4   6   4   1
1   5   10  10  5   1
1 def triangles(max):
2     L = [1,]
3     while len(L) - 1 < max:
4         yield L   #### yield 会print 然后会停止循环, 接下来不会得到下一个L
            ###理解2 yield 即停,然后next()接着yield处继续运行,至下一个yield停,yield=print+return
5 L.append(0) 6 L = [L[x] + L[x - 1] for x,y in enumerate(L)] #找规律 下标直接用enmerate 而不用ij ## 7 8 for L in triangles(5): 9 print('#',L)

-

 

 
posted @ 2017-09-10 16:25  Anlovescode  阅读(548)  评论(0编辑  收藏  举报