迭代器的优点:
1、可以使用for循环遍历;
2、可以节省内存空间;
3、可以有序的访问集合(set)数据结构内的元素。
迭代器的缺点:
只能向前,不能后退。
可迭代对象与不可迭代对象:
可迭代对象:list、tuple、str、dict
不可迭代对象:set
判断是否为可迭代的对象?
from collections import Iterable # from collections import Iterator s = {'name':'egon','age':18} print(isinstance(s,Iterable)) #判断是否为迭代的对象
#输出结果:True
判断是否为迭代器?
from collections import Iterator s = {'name':'egon','age':18} print(isinstance(range(100),Iterator)) #判断是否为迭代器
迭代器使用方法
l = [1,2,3,4,5] l_iterator = iter(l) print(next(l_iterator)) print(next(l_iterator)) print(next(l_iterator)) print(next(l_iterator)) print(next(l_iterator)) #print(l_iterator.__next__())等同于print(next(l_iterator))
#需要注意每次只能返回一个值,且不能后退。
小结:
1、可迭代协议:凡是可迭代的颞部都有一个__iter__方法;
2、迭代器协议:内部实现了__iter__和 __next__方法;
3、可迭代对象与迭代器的不同点:迭代器多了一个__next__方法;
4、可迭代对象与迭代器的相同点:都可以使用for循环。