博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
浅谈python可迭代对象,迭代器
阅读量:4919 次
发布时间:2019-06-11

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

 

 

迭代器

  迭代器是一种更抽象的概念。

  迭代是访问数据的一种方式。迭代器是一个可以记住遍历位置的对象,迭代器对象从集合的第一个元素开始访问,直到所有的元素访问完后结束。迭代器只能往前去访问下一个元素,不能后退

  迭代器就是可迭代对象调用iter()方法,返回了一个迭代器

  那么什么是可迭代对象呢?

    像字符串列表字典元祖等这些容器可以使用for循环进行遍历依次拿到容器中的数据,我们把这样的过程称为迭代。你也可以理解为只要能用for循环语句进行遍历的其实就是可迭代对象。你也可以查看创建这个对象的类中是否实现iter()方法,只要实现了这个方法那么他就是一个可迭代对象

  可迭代对象的本质就是向我们提供了一个中间人,即迭代器帮助我们进行迭代遍历。可迭代对象通过调用自身的iter()方法向我们返回一个迭代器。我们在迭代可迭代对象的时候实际上就是先获取该对象提供的一个迭代器,然后通过迭代器来依次获取对象中的每一个数据

  比如说查看产看创建my_list这个对象的类

  

   list这个类中就实现了iter()方法

  

  也可以使用istance()这个内置函数来判断一个对象是否是可迭代对象

  

  当然也可以使用这个内置函数判读这个对象是不是迭代器。

  

  想要获取迭代器中的数据可以使用next()方法

  

  使用next()方法的时候迭代器会给你返回一个迭代器中的数据,并且他会记录当前所在位置的下标,当你下一次再调用的时候他会给你返回上次记录的下标的下一个数据,以此类推,直到所有迭代器中的数据被访问完后停止

  

  当迭代器中的数据都被访问完后你还想继续访问的话,那么他会给你抛出一个异常,例如

  

  其实for循环的本质就是,当我们使用for循环去遍历一个可迭代对象的时候,首先会通过调用可迭代对象的iter()方法返回的迭代器,然后用next()方法依次去访问迭代器中的每一个数据,并且把取到的数据赋值给for后面的那个临时变量来保存,当遇到StopIteration异常后循环就会结束。

 

转载于:https://www.cnblogs.com/machaos/p/8362317.html

你可能感兴趣的文章
Python
查看>>
犀牛Phinoceros 如何切换中文语言
查看>>
Win7如何解决精简版的迅雷7无法运行
查看>>
C#.NET常见问题(FAQ)-如何判断某个字符是否为汉字
查看>>
直接用postman测试api ,服务器端没提供跨域也可以访问。
查看>>
数据的类型以及内置方法
查看>>
继承之super关键字的使用
查看>>
XML - 报表数据的新大陆
查看>>
echart在X轴下方添加字
查看>>
Map集合的两种取出方式
查看>>
GridView,Repeater增加自动序号列
查看>>
SMO算法精解
查看>>
第k小元素学习记录
查看>>
avi文件格式详解【转】
查看>>
django
查看>>
Java学习从入门到精通
查看>>
查找目录下的所有文件中是否含有某个字符串 linux
查看>>
66. Plus One 数组加1
查看>>
范式原则
查看>>
2018年各大互联网前端面试题四(美团)
查看>>