pyhton初学者关于生成器的疑问
这是一个杨辉三角的生成器,请教为什么生成器的next没有变化,
如果我把生成器里的yield L换成pre,就可以正常生成,这是为什么呢?
代码如下:
def triangles(): L = [1]
pre = L
while True:
yield L
for i in range(1, len(L)):
L[i] = pre[i] + pre[i-1]
L.append(1)
pre = L[:]
print(next(triangles()))
print(next(triangles()))
print(next(triangles()))
回答:
每次调用 triangle
都会新生成一个从头开始的生成器。
应该这样:
n = triangles()print(next(n))
print(next(n))
print(next(n))
以上是 pyhton初学者关于生成器的疑问 的全部内容, 来源链接: utcz.com/a/163180.html