Python3 迭代器与生成器
迭代器
- 是访问集合元素的一种方式,迭代器是一个可以记住遍历对象的位置。
- 迭代器对象从集合的第一个元素开始访问,每执行一次next()方法,pop一个元素出来,直到所有的元素被访问完结束。迭代器只能往前不会后退。
- 迭代器的两个基本方法:iter() 和 next()。
- 在没有后续元素时,next()会抛出一个StopIterration的异常。
it = iter((1,2,3,4,'A','B'))
print(next(it))
print(next(it))
it = iter((1,2,3,4,'A','B','C'))
for data in it:
print(data, end=" ")
生成器
- 使用了 yield 的函数被称为生成器(generator)。
- 在调用生成器函数的运行过程中,每次遇到 yield 时,函数会暂停并保存当前所有的运行信息,返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行。
#!/usr/bin/python3
def sum(arg1, arg2):
yield arg1 + arg2
print("----此处不会输出-------")
s = sum(5, 6)
print(s)
print(next(s))