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 的函数被称为生成器
来源:oschina
链接:https://my.oschina.net/u/4389841/blog/3697311