博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
day04.2-迭代器
阅读量:5135 次
发布时间:2019-06-13

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

1. 迭代器协议:

   对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代(只能往后走,不能往前退)。

2. 可迭代对象:

   实现了迭代器协议的对象(即对象内部定义了一个__iter__)。

   python的内部工具(如for循环、sum、min、max函数等)通过迭代器协议来实现对象的访问。

1 s = [1,2,3,4] 2 iter_s = s.__iter__()     #或iter(s),遵循迭代器协议,生成可迭代对象,其中try用于异常捕捉 3 print(iter_s.__next__())    #或next(iter_s),按照迭代器提供的next方法依次访问列表中各元素 4 print(iter_s.__next__()) 5 print(iter_s.__next__()) 6 print(iter_s.__next__()) 7  8 """ 9 运行结果:10     111     212     313     414 """

   字符串、列表、元组、字典、集合、文件等本身都不是迭代对象,只是在for循环时,调用了它们内部的__iter__方法,将其变成了可迭代对象。

3. 用while模拟for循环内部原理

1 s = [1,2,3,4] 2 iter_s = s.__iter__() 3 while True: 4     try: 5         print(iter_s.__next__()) 6     except StopIteration: 7 print("迭代完毕,循环终止") 8 break 9 10 """ 11 运行结果: 12 1 13 2 14 3 15 4 16 迭代完毕,循环终止 17 """

 

转载于:https://www.cnblogs.com/zizaijiapu/p/10590245.html

你可能感兴趣的文章
visio二次开发——图纸解析
查看>>
Activity之间的跳转:
查看>>
iTunes Connect 开发者上手经验(转)
查看>>
vertical-align你为什么不生效
查看>>
C++ 实践总结
查看>>
composer 国内镜像配置
查看>>
软件是天时、地利、人和的产物!
查看>>
python定时清空本目录下除本脚本外的全部文件
查看>>
【PHP】在目标字符串指定位置插入字符串
查看>>
【JS】jQuery设置定时器,访问服务器(PHP示例)配合微信、支付宝原生支付,跳转web网页...
查看>>
实验四2
查看>>
VS2012+Win7网站发布详细步骤
查看>>
Android现学现用第十一天
查看>>
Bin Packing 装箱问题——NPH问题的暴力枚举 状压DP
查看>>
多路复用
查看>>
python 列表
查看>>
Python数据可视化之Pygal(雷达图)
查看>>
当前主流读取Excel技术对比
查看>>
js-格式化数字保留两位小数-带千分符
查看>>
【Java】forward & redirect 的差异
查看>>