python学习-38迭代器和生成器
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python学习-38迭代器和生成器,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1154字,纯文字阅读大概需要2分钟。
内容图文
![python学习-38迭代器和生成器](/upload/InfoBanner/zyjiaocheng/759/e95c8773f1ae4ee392b6ceb6c17bfaf5.jpg)
迭代器和生成器
- 迭代器协议和for循环工作机制
1.迭代器协议:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么引起一个Stoplteration异常,以终止迭代(只能往后走,不能往前走)
2.可迭代对象:实现了迭代器的对象(如何实现:对象内部定义一个_iter_()方法)
3.协议是一种约定,可迭代对象实现了迭代器协议,python的内部工具(如:for循环,sum,min,max函数等)使用迭代器协议访问对象。
dic ={'a':1,'b':2} iter_d=dic.__iter__() # 相当于for循环的迭代。 列表,字典,文件等有_iter_()方法的都可以 print(iter_d.__next__())
for循环的本质:循环所有对象,全部都是使用的迭代协议
-for循环机制也可以用while表示
a=[1,2,3,4,5] iter_a=a.__iter__() while True: try: print(iter_a.__next__()) except StopAsyncIteration: print('迭代完毕,循环终止') break
-迭代器原理
1.
a = [1,2,3,4,5] iter_a=a.__iter__() # 切换为迭代器形式 print(iter_a.__next__()) print(iter_a.__next__()) print(iter_a.__next__()) print(iter_a.__next__()) print(iter_a.__next__())
运行结果:
1 2 3 4 5 Process finished with exit code 0
2.用next方法
a = [1,2,3,4,5] iter_a=a.__iter__() # 切换为迭代器形式 print(next(iter_a)) print(next(iter_a)) print(next(iter_a)) print(next(iter_a)) print(next(iter_a))
运行结果是一样的
内容总结
以上是互联网集市为您收集整理的python学习-38迭代器和生成器全部内容,希望文章能够帮你解决python学习-38迭代器和生成器所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。