博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
迭代器
阅读量:5324 次
发布时间:2019-06-14

本文共 896 字,大约阅读时间需要 2 分钟。

迭代器为什么要用迭代器为什么不使用列表而使用迭代器,列表可以获取列表长度,然后使用变量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 selffibs=Fibonacci()#对斐波那数列进行迭代for fib in fibs:    print(fib,end=" ")    #迭代的值不能超过500    if fib > 500:        breakE:\python\python.exe E:/progect/untitled1/untitled1/urls.py0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610

 

转载于:https://www.cnblogs.com/effortsing/p/10387393.html

你可能感兴趣的文章
UML 序列图
查看>>
[JS 分析] 有_道_翻_译 MD5 加盐
查看>>
WPF控件深拷贝:序列化/反序列化
查看>>
JAVA_SE基础——32.this关键字调用本类的构造方法
查看>>
winform中datagridview选中行索引获取
查看>>
243. Shortest Word Distance
查看>>
查看被锁的数据[Z]
查看>>
2015-08-11 [今日头条]--数据抓取和处理工程师--1面
查看>>
1.RT-Thread移植(基于STM32F429IIT6)
查看>>
解决GridView中嵌入CheckBox事件无法响应的问题
查看>>
高压浮动MOS栅极驱动集成电路应用手册
查看>>
转载---数据库优化方案
查看>>
面向对象、函数式
查看>>
微信小程序
查看>>
在线学习重要的是不要停止提问
查看>>
QQ在线客服,默认到要加好友,授权也不起作用需要先开通QQ营销服务
查看>>
pro git
查看>>
UVA 11825 Hackers’ Crackdown(集合动态规划 子集枚举)
查看>>
【转载】初涉职场的40句金玉良言
查看>>
Django使用Mysql数据库已经存在的数据表方法
查看>>