1 重复性
2 下一次重复是基于上一次的结果
python 为了提供一种不依赖索引的迭代方式
python会为一些对象内置__iter__,能够.__iter__的都是可以成为可迭代对象
如果我们.__iter__后得到一个结果就是迭代器
迭代器从无到有的过程:
i=d.__iter__()得出迭代器
i__next__()迭代器执行了
迭代器优点:
1:提供了一种不依赖于索引的取值方式
2:惰性计算,省内存
迭代器缺点:
1:取值不如按照索引的方便,如果我想取列表的第三个值,但是迭代器需要取出前两个
2:一次性的,只能取下一个值,不可以再次取出上一个值
3:由于一次只去一个值 所以无法len()查长度,只能完成后出现报警
用while向for一样迭代
可迭代对象一定是迭代器对象
列如:
a=[1,2,3,4]
a.__iter__
说明他是可迭代对象
a.__next__
说明他是迭代器对象
判断是不是可迭代 Iterable
判断是不是迭代器对象Iterator
迭代器的应用场景
1.提供了一种不依赖索引的统一迭代方法
2.惰性计算,列如没一行的取文件,省内存