• 迭代器


    迭代器
    
    为什么要用迭代器
    
    为什么不使用列表而使用迭代器,列表可以获取列表长度,然后使用变量i对列表索引进行循环,而且容器理解,也可以获取集合的所有元素。
    
    没错,使用列表的代码是容易理解也很好操作,但这是要付出代价的。列表之所以可以用索引来快速定位其中的任何一个元素,是因为列表是一下子将所有的数据都装在在内存中,
    
    而且是一块连续存在的空间。当数量比较小时,实现比较容易;当数据量大时,会非常消耗内存资源。而迭代就不同,迭代是读取多少元素,就讲多少元素装载到内存中。
    
    
    实例:
    
    在这个例子中定义了一个迭代器类(Fibonacci),用于无限迭代斐波那数列。
    
    class Fibonacci:
        # 在构造方法中定义两个变量a和b,用来表示斐波那数列的最开始的两个值
        def __init__(self):
            self.a=0
            self.b=1
        def __next__(self):
            # self.a就是当前要迭代的值
            result=self.a
            #计算斐波那数列的下一个值,并将a变成原来的b,降b变成下一个值
            self.a,self.b=self.b,self.a+self.b
            # 返回当前迭代的值
            return result
        #该方法必须返回迭代器
        def __iter__(self):
            return self
    fibs=Fibonacci()
    #对斐波那数列进行迭代
    for fib in fibs:
        print(fib,end=" ")
        #迭代的值不能超过500
        if fib > 500:
            break
    
    
    E:pythonpython.exe E:/progect/untitled1/untitled1/urls.py
    0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 
  • 相关阅读:
    我的大学(转作者袋袋鼠)
    Reporting Services使用问题
    爱的真谛(转)
    无题
    工作???
    带老弟做项目,凉了
    学妹问,学网站开发还是打 ACM?
    在字节跳动的实习经历分享 | 万字求职指南
    云开发是啥?看看它在编程导航项目的实践
    我删库跑路失败了
  • 原文地址:https://www.cnblogs.com/effortsing/p/10387393.html
Copyright © 2020-2023  润新知