|python中的迭代器是个啥?
文章图片
文章图片
迭代器是什么?
说道python的迭代器之前 , 不得不提到的就是在远古时期的C语言的时代 , 如果想要对一个数组进行遍历 , 只能使用for循环 。
但是这样通常会有很多问题 , 首先就是对不同容器类型遍历的写法不一致 , 另外就是循环条件偶尔写错了报错 , 还得找半天bug , 要知道我们只是想简简单单的遍历一个列表啊 , 有这么痛苦吗?
接着我们的主角迭代器就登场了!
就以python举例 , 不管是字典形式 , 列表形式 , 元组形式都可以使用for语句一个搞定 。
为什么要使用迭代器
那么迭代器帮助我们解决的问题也就显而易见了 , 我们面对可迭代对象再也不用记那么多不同的写法了 , 只需要一个就可以了 , 极大程度的让我们更加专注于写bug(不是)
怎么构建一个迭代器
相信 看完上面就已经知道 , 迭代器相当于系统把不同的可迭代对象都帮你做成了一个统一的接口 , 那么可迭代对象背后到底是什么呢?
迭代当然不需要列表老大亲自来执行了 , 而是派出自己的小弟来执行 , 那么这个小弟是谁呢?
【|python中的迭代器是个啥?】首先可以使用dir查看一下我们可迭代对象拥有的方法和属性 。
就是其中的__iter__方法 , 简单来说如果有这个方法 , 那么他就是可迭代的对象 。
那么此时此刻一个可迭代的对象进入for语句之后会做什么呢?会将__iter__放法的返回当做一个对象 , 再调用其中的__next__方法 , 也就是真正的迭代器 , 可以通过iter方法获得列表的小弟__iter__方法 , 从而直接调用__next__方法 。
从本质上来说如果一个对象 , 有__iter__和__next__方法那么这一定就是一个可迭代的对象 。
下面我就构建了一个可以反向输出的可迭代对象 。
- 界面设计中的分割方式
- 机箱|内外设置精致双屏幕,二手金立w900体验,国产翻盖手机中的贵族
- 华为|华为P50Pocket和三星Z Flip3真机上手,谁才是你心中的折叠机皇
- Python|诺基亚N8 2022款渲染图曝光:再现昔日经典,蔡司四摄堪比小单反
- 英特尔|近年来,生成式深度学习模型在分子设计中的应用已经出现
- 动力|一体化系统中的直流电源介绍
- Python|12GB运存+512GB仅2049元,4520毫安续航,骁龙870真香!
- 努比亚|虾米音乐是阿里心中的一个痛!
- 英特尔|原来i7-12700才是传说中的那个王,两套配置推荐各取所需
- aigo|网盘大行其道,U盘已过时?六大场景告诉你千万别丢掉手中的U盘