方式4(了解)
使用迭代器进行遍历
额外讲解:
访问集合的方式-迭代器
1.概念:
迭代:是访问集合元素的一种方式
按照某种顺序逐个访问集合中的每一项
可迭代对象:
判定依据:能作用于for in
判定方法:import collections
isinstance(obj, collections, Iterable)
pd = [1, 2, 3, 4, 5, 5, 6, 7, 8, 9] for pdd in pd: print(pdd) import collections jg = isinstance(pd, collections.Iterable) print(jg)
迭代器:是可以记录遍历位置的对象
从第一个元素开始,往后通过next()函数,进行遍历
只能往后,不能往前
判定依据:能作用于next()函数
判定方法:import collections
isinstance(obj, collections, Iterator)
注意:迭代器也是可迭代对象,所以也作用于for in
2.为什么会产生迭代器:
仅仅在迭代到某个元素时才处理该元素:在此之前,元素可以不存在
在此之后,元素可以被销毁
特别适合用于遍历一些巨大的或者无限的集合->例如:菲波那切数列
提供了一个统一的访问接口:iter(Iterable)->iter(str)
->iter(list)
->iter(tuple)
->iter(dict)
......
3.迭代器简单使用:使用next()函数,从迭代器中取出下一个对象,从第一个元素开始
因为迭代器比较常用,所以python中,可以直接作用于for in:内部会自动调用迭代器对象的next()函数
会自动处理迭代完毕的错误
4.注意事项:如果取出完毕,再继续取,则会报错->StopIteration
迭代器一般不能多次迭代
l = [6, 2, 3, 4, 5] # 1.创建一个迭代器对象 it = iter(l) # next() print(next(it)) print(next(it)) print(next(it)) print(next(it)) print(next(it)) for v in it: print(v) print("------------------------") for v in it: print(v)