本文主要讲解python中的迭代器Iterator。
什么是迭代器
迭代器是访问可迭代对象的工具
迭代器是指用iter(obj)函数返回的对象(实例)
迭代器是指用next(it)函数获取可迭代对象的数据
迭代器函数(iter和next)
iter(iterable)从可迭代对象中返回一个迭代器,iterable必须是能提供一个迭代器的对象
next(iterator) 从迭代器iterator中获取下一了记录,如果无法获取下一条记录,则触发stoptrerator异常
说明:
1.迭代器只能往前取值,不会后退
2.用iter函数可以返回一个可迭代对象的迭代器
示例
1 2 3 4 5 6 7 | l = [1,3,5,7] it = iter(1) #让l提供一个能访问自己的迭代器 next(it) #1 从迭代器中取值,让迭代器去获取l中的一个元素 next(it) #3 next(it) #5 next(it) #7 next(it) # StopIterable 异常 |
迭代器的用途:
用迭代器可以依次访问可迭代对象的数据
示例:
1 2 3 4 5 6 7 8 9 | #以下用迭代器来访问l列表中的元素 l = [2,3,5,7] it = iter(l) while True: try: x = next(it) #获取一个数据并绑定到x print(x) #2,3,5,7 except StopIteration: pass |
练习
1 2 3 4 5 6 7 8 | 有一个集合: s = {'唐僧','悟空','悟能','悟净'} 用for语句来遍历所有的元素如下; for x in s: print(x) else: print('遍历结束') 将上面的for语句改写为while语句和迭代器实现 |
1 2 3 4 5 6 7 8 | s = {'唐僧','悟空','悟能','悟净'} it = iter(s) try: while True: x = next(it) print(x) except StopIteration: print('遍历结束') |