zoukankan      html  css  js  c++  java
  • 迭代器的应用

    一、使用迭代器的目的

      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

    运行结果:

     

  • 相关阅读:
    联想 thinkpad 双系统 linux
    日期差值 1096
    np.newaxis用法详解
    Tensorflow InternalError: Blas SGEMM launch failed
    [转载] xmapp启动Tomcat时报JDK、JRE未安装错误的解决方法
    opensuse 装机总结
    opensuse nvidia 解决方案 [转载]
    驱动调试方法
    模块加载——modprobe和insmod的区别(转)
    UBOOT2016.05 看门狗
  • 原文地址:https://www.cnblogs.com/yujiemeigui/p/14309397.html
Copyright © 2011-2022 走看看