迭代器的应用
一、使用迭代器的目的
1、说明 :当在一个程序中需要用到很多个值时,
方案一:使用一个列表将这些值进行存储。什么时候用就什么时候取。
缺点:占用大量的内存空间
方案二:存储生成这些值的方式、什么时候使用就什么时候生成一个。
缺点:占用极小的内存空间,只占用产生这些值的方式的内存空间
比喻: 为了长期对抗疫情,所以要准备储备粮食,现有两种方案。
方案一:买大量的馒头放到冰箱中。
方案二:买面粉。吃一个做一个。
二、Python2.X中的【range】和【xrange】函数的区别
1、range函数:生成一个列表
2、xrange函数: 生成一个存储值的方式,即可迭代对象。
三、斐波那契数列
1、描述:即:除了第一个和第二个数外,其它每一个数都是前面两个数相加得到的结果。
示例:0,1,1,2,3,5,8,13,21,34,......
2、代码实现:
class Fibonacci(object):
"""斐波那契数列迭代器"""
def __init__(self, all_nums):
self.all_num = all_nums
self.current_num = 0
self.a = 0
self.b = 1
def __iter__(self):
return self
def __next__(self):
if self.current_num < self.all_num:
ret = self.a
# 将两个数进行交换
# 等同于: a,b = b,a+b
self.a, self.b = self.b, (self.a + self.b)
self.current_num += 1
return ret
else:
raise StopIteration
fibo = Fibonacci(10)
for num in fibo:
print(num)
运行结果: