前:
迭代器中存的不是结果而是生成结果的方式。(有利于节约资源)
应用:
1.1基本的fabonacci实现方法:
nums = list()
a = 0
b = 1
i = 0
while i < 10:
nums.append(a)
a, b = b, a+b
i = i + 1
for num in nums:
print(num)
2.1迭代器实现fabonacci:
class Fabonacci(object):
def __init__(self, all_num):
self.currentindex = 0
self.a = 0
self.b = 1
self.all_num = all_num
def __next__(self):
if self.currentindex < self.all_num:
ret = self.a
self.a, self.b = self.b, self.a+self.b
self.currentindex += 1
return ret
else:
raise StopIteration
def __iter__(self):
return self
if __name__ == "__main__":
fabo = Fabonacci(10)
for i in fabo:
print(i)
总结:很显然第二种方法都没有用到list,代码占用资源很少。
2.通过迭代器返回一个list。