Discuss / Python / 用循环写了,还没有用生成器

用循环写了,还没有用生成器

Topic source
在此插入代码

def triangles(n): for i in range(n): L=[] for j in range(i): if j==0: L.append(1) else: L.append(T[j-1]+T[j]) L.append(1) T=L print(L)

将print(L)换成yield L之后成为生成器

def triangles(n): for i in range(n): L=[] for j in range(i): if j==0: L.append(1) else: L.append(T[j-1]+T[j]) L.append(1) T=L yield L

t=triangles(10) next(t) [1] next(t) [1, 1] next(t) [1, 2, 1] for k in triangles(10): print (k)

[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, 35, 21, 7, 1] [1, 8, 28, 56, 70, 56, 28, 8, 1] [1, 9, 36, 84, 126, 126, 84, 36, 9, 1]


  • 1

Reply