【Python之旅】第二篇(九):迭代器
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了【Python之旅】第二篇(九):迭代器,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2215字,纯文字阅读大概需要4分钟。
内容图文
![【Python之旅】第二篇(九):迭代器](/upload/InfoBanner/zyjiaocheng/1236/6b460e8cb6e943a0860a940efee95d6c.jpg)
说明:关于Python中迭代器的解释
Iterator是迭代器的意思,它的作用是一次产生一个数据项,直到没有为止。这样在 for 循环中就可以对它进行循环处理了。那么它与一般的序列类型(list, tuple等)有什么区别呢?它一次只返回一个数据项,占用更少的内存。但它需要记住当前的状态,以便返回下一数据项。它是一个有着next()方法的对象。而序列类型则保存了所有的数据项,它们的访问是通过索引进行的。
举个前面的例子来说就像readlines和xreadlines的区别,readlines是一次性读入放入内存中,而xreadlines是每次只读取一行放入内存中,这意味着,在读取当前行的时候,需要有相应记数器记下当前的读取状态,暂时可以先这样去理解。
1.实例1:使用next()函数来读取迭代器中的数
·可演示如下:
>>> a = iter(range(10)) #创建一个迭代器 >>> a <listiterator object at 0x7f251917ec10> >>> a.next() 0 >>> a.next() 1 >>> a.next() 2 >>> a.next() 3 >>> a.next() 4 >>> a.next() 5 >>> a.next() 6 >>> a.next() 7 >>> a.next() 8 >>> a.next() 9 >>> a.next() Traceback (most recent call last): File "<stdin>", line 1, in <module> StopIteration
·a存放的是迭代器中的地址,next()可以读取下一个位置的元素;
·next()函数不会判断迭代器的结束,只能根据输出异常来判断迭代的结束;
2.readline的简单解释
·文件操作也可以通过next()函数读取每一行:
>>> f = file(‘student_info.txt‘) >>> f.next() ‘stu1101 mingjia.xu 275896019@qq.com 263 SystemAdmin 18810404260\r\n‘ >>> f.next() ‘stu1102 Yangjiansong jason@s156.com A8music SystemAdmin 13601247960\r\n‘ >>> f.next() ‘stu1103 zouxinkai zouxinkai_2006@126.com jishubu systemadmin 1861214111‘ >>> f.next() Traceback (most recent call last): File "<stdin>", line 1, in <module> StopIteration
·readline也是通过上面迭代的方式来处理文件内容,只是readline增加了异常处理的功能,因此不会报错:
>>> f = file(‘student_info.txt‘) >>> f.readline() ‘stu1101 mingjia.xu 275896019@qq.com 263 SystemAdmin 18810404260\r\n‘ >>> f.readline() ‘stu1102 Yangjiansong jason@s156.com A8music SystemAdmin 13601247960\r\n‘ >>> f.readline() ‘stu1103 zouxinkai zouxinkai_2006@126.com jishubu systemadmin 1861214111‘ >>> f.readline() ‘‘
3.通过循环获取迭代器中的内容
·演示如下:
>>> a = iter(range(10)) >>> while True: ... a.next() ... 0 1 2 3 4 5 6 7 8 9 Traceback (most recent call last): File "<stdin>", line 2, in <module> StopIteration
·只能通过类似while True循环实现;
·通过该方法可以获取迭代器中的内容,并进一步对异常情况进行处理。
本文出自 “香飘叶子” 博客,请务必保留此出处http://xpleaf.blog.51cto.com/9315560/1696889
原文:http://xpleaf.blog.51cto.com/9315560/1696889
内容总结
以上是互联网集市为您收集整理的【Python之旅】第二篇(九):迭代器全部内容,希望文章能够帮你解决【Python之旅】第二篇(九):迭代器所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。