Python3 迭代器与生成器

Python3 迭代器与生成器

迭代器(iterator):

迭代器是一个对象。

是一个可以记住遍历的位置的对象

迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。

                  迭代器只能往前不会后退。

 

创建迭代器:字符串,列表或元组对象都可用于创建迭代器

迭代器有两个基本的方法:iter() 和 next()

StopIteration异常:用于标识迭代的完成,防止出现无限循环的情况,在 __next__() 方法中我们可以设置在完成指定循环次数后触发 StopIteration 异常来结束迭代。

#!/usr/bin/python3
 
import sys         # 引入 sys 模块
 
list=[1,2,3,4]
it = iter(list)    # 创建迭代器对象
 
while True:         # 使用while 语句循环输出it
    try:
        print (next(it))  # 输出迭代器的一个元素
    except StopIteration:      # 当遇到出现“StopIteration” 异常,执行“退出”
     sys.exit()
 
1
2
3
4

tip:我们创建一个generator后,基本上永远不会调用next(),而是通过for循环来迭代,并且不需要关心StopIteration的错误

#生成器
generator_ex = (x*x for x in range(10))
for i in generator_ex:
    print(i, end = "  ")

0  1  4  9  16  25  36  49  64  81

 

 

生成器(generator):使用了 yield 的函数被称为生成器

 

posted @ 2018-12-27 17:33  L-guansheng  阅读(340)  评论(0编辑  收藏  举报