迭代器就是迭代取值的工具,迭代是一个重复取值的过程,每次重复都基于上一次的结果而继续的。
为了解决基于索引取值的局限性。而提供的统一取值的方法
但凡内置有_ _ iter _ _方法都称之为可迭代对象。
字符串、列表、元组、字典、集合、文件对象
调用可迭代对象下的_ _ iter _ _方法会将可迭代对象转化为迭代器对象。
使用迭代器对象下的_ next _方法,可以迭代器对象进行依次取值,当指取完后将弹出StopIteration报错。
d={‘k1‘:‘v1‘,‘k2‘:‘v2‘}
for i in d:
pass
1.d.__iter__()得到迭代器对象
2.迭代器对象.__next__()拿到一个返回值,然后将值返回赋值给i
3.循环步骤2,直到抛出StopIteration异常for循环会捕捉异常然后结束循环
可迭代对象.__iter__() #得到迭代器对象
迭代器对象:内置有_ iter _ 方法,并且内置有_ next _方法的对象
迭代器对象.__next__() #得到迭代器的下一个值
迭代器对象.__iter__() #得到还是迭代器对象
可迭代对象:字符串、列表、元组、字典、集合、文件对象(文件对象也是迭代器对象)
原文:https://www.cnblogs.com/shi-py-rengongzhineng/p/13983149.html