在下面的代码中,i1是一个迭代器。
def sq(x):
y = []
for i in x:
y.append(i**2)
return y
l1 = range(5)
s1 = sq(l1)
i1 = iter(s1)
我可以为相同的平方运算编写一个生成器。在下面的代码中,g1是一个生成器。
def sqg(x):
for i in x:
yield i**2
g1 = sqg(l1)
我知道生成器使用更少的代码并且更易于读写。我知道生成器也运行得更快,因为它们保持本地状态。
使用i1over有什么好处g1吗?
智慧大石
小唯快跑啊
相关分类