迭代器的应用

一、使用迭代器的目的

  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)
View Code

运行结果:

 

原文地址:https://www.cnblogs.com/yujiemeigui/p/14309397.html