迭代器
2018-08-26 17:33:02来源:博客园 阅读 ()
一、理解迭代器
迭代,重复产生结果的一个过程。上一次产生的结果为下一次产生结果的初始状态。
迭代器,用来迭代的工具。
可迭代对象:内置__iter__方法的对象。
1 'alex'.__iter__() 2 [2,4,6].__iter__() 3 (1,2,3).__iter__() 4 {'name':'alex','age':20}.__iter__() 5 {'alex','lvqj'}.__iter__() 6 open('a.txt','r','utf-8').__iter__()
迭代器对象:内置__iter__方法又内置__next__方法的对象。
#列表、字符串、元组可通过索引来获取元素,字典、集合则需要通过迭代器来迭代里面的元素。
#'alex'.__iter__()得到的迭代器对象仍然是一个迭代器对象。'alex'.__iter__().__iter__()。
#迭代器对象一定是可迭代对象,而可迭代对象不一定是迭代器对象。
二、迭代器的使用
1 l = [1,2,3,4,5] 2 iter_l = l.__iter__() 3 print(iter_l.__next__()) #等同于print(next(iter_l))
#当可迭代对象中无法被找到下一个结果时会抛出StopIteration异常,通常捕获该异常即可。
1 try: 2 print(iter_l.__next__()) 3 except StopIteration: 4 break
三、for循环工作原理
for循环在工作的过程中,首先在内部对可迭代对象调用__iter__方法获取到迭代器对象,再一次一次的去通过迭代器对象调用__next__方法获取迭代的结果。
1 p = {'name':'alex','age':22} 2 for k in p: 3 print(k,'->',p[k])
四、迭代器优缺点
优点:可以不基于索引的方式获取可迭代对象中的元素。惰性计算,节省内存。
#获取文件中的内容,传统的方式是读取文件中的内容到内存空间中,极大占用内存空间。而使用迭代器可以一个迭代读取一段内容,充分节省内存空间。
缺点:不能知道可迭代对象的长度。只能往前走,不能往后走。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Python学习日记(十) 生成器和迭代器 2019-08-13
- Python 数据结构理解分享 2019-07-24
- python学习-38迭代器和生成器 2019-07-24
- Python-11-生成器 2019-07-24
- Python-10-迭代器 2019-07-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash