Python迭代器用法与迭代器协议

一递归和迭代
递归 自己调用自己
迭代 能用for循环遍历
二迭代器协议
1.迭代器协议是:对象必须提供一个next方法,执行该方法要么返回迭代的下一项,要么就引起一个 StopIteration异常,以终止迭代(只能往后走 不能往前推)
2.可迭代对象: 实现了 迭代器协议对象(如何实现: 对象内部定义了一个 __iter__() 方法
3.协议是一种约定,可迭代对象 实现了迭代器协议,python的内部工具(如for循环, sum , min max函数)使用迭代器协议访问对象
三 Python中强大的for循环机制
for循环的本质: 循环所有对象,全都是使用迭代器协议
字符串。列表 元组 字典 集合 文件对象 都不是可迭代对象 因为没有 next方法 只不过是 for循环式,
调用了他们内部的 __iter__方法,把他们变成了可迭代对象
l = [1,2,3]
for i in l :                i_l调用了l.__iter__ 并 捕捉了 StopIteration异常


l.__iter__()
实际上 next方法-----> iter_l.__next__()
# 遵循迭代器协议,生成可迭代对象
总结:for循环可以循环 序列化对象 (字符串, 列表 元组)
也可以遍历 非序列对象(集合,文件对象 字典等等)

 

转载于:https://www.cnblogs.com/poetl/p/8315592.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值