一、迭代器
————迭代器是一个可以记住遍历的位置的对象。python中访问集合元素的一种方式。
1、特征
- 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。
- 迭代器只能往前不会后退。
- 字符串,列表或元组对象都可创建迭代器。
2、基本使用(两个方法)
- iter()——用于创建迭代器对象。
例:
list=[1,2,3,4] 列表变量
it = iter(list) 创建迭代器对象
- next()——用于指向迭代器的下一个元素。
例:
>>> print (next(it)) 输出迭代器的下一个元素
1
>>> print (next(it)) 输出迭代器的下一个元素
2
补充:当next()方法遍历完迭代器中的全部元素后,会抛出 StopIteration异常。用户可以通过捕捉该异常,来停止遍历。
while True:
try:
print (next(it)) 遍历
except StopIteration: 捕捉异常
sys.exit() sys模块中的方法
二、生成器
————使用了 yield 的函数被称为生成器(generator)
1、特征
- 调用一个生成器函数,返回的是一个迭代器对象,只能用于迭代操作。(生成器就是一个迭代器)
在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行。
2、实例
生成器每调用一次在yield位置产生一个值,直到函数执行结束