python 迭代器,生成器
2017-08-22 08:03
239 查看
什么事迭代:
我们需要使用copy中的deepcopy
生成器就是一种迭代器,可以使用for循环进行迭代
“`
可直接用作与for循环的对象统称为可迭代对象;可以被next()函数调用,并不断返回下一个值的对象称为迭代器, 所有的Iterable均可以通过内置函数iter()来转变为Iterator。 对于迭代器来讲,有一个next()就够了。在你使用for和in语句时,程序就会自动调用即将被处理的对象的可迭代对象,然后使用next()方法。 **复制迭代器**
我们需要使用copy中的deepcopy
例: >>> import copy >>> I=iter(L) >>> J=copy.deepcopy(I) >>> next(I) 1 >>> next(I) 2 >>> next(J) 1 ``` **生成器**
生成器不会把结果保存在一个系列中,而是保存生成器的状态,在每次进行迭代时返回一个值,直到遇到StopIteration异常结束。 生成器函数: 在函数中如果出现了yield关键字,那么该函数就不再是普通函数,而是生成器函数。
但是生成器函数可以生产一个无线的序列,这样列表根本没有办法进行处理。 yield 的作用就是把一个函数变成一个 generator,带有 yield 的函数不再是一个普通函数,Python 解释器会将其视为一个 generator。
**yield 与 return**:
在一个生成器中,如果没有return,则默认执行到函数完毕时返回StopIteration; 如果遇到return,如果在执行过程中 return,则直接抛出 StopIteration 终止迭代。
**总结**:
生成器就是一种迭代器,可以使用for循环进行迭代
“`
相关文章推荐
- python中的迭代器与生成器
- python之迭代器和生成器
- python学习笔记9-迭代器和生成器整理
- 深入讲解Python中的迭代器和生成器
- 举例讲解Python中的迭代器、生成器与列表解析用法
- python--迭代器和生成器
- Python——迭代器和生成器
- python基础教程总结8——特殊方法,属性,迭代器,生成器,八皇后问题
- python 学习2:生成器,迭代器,装饰器
- Python迭代器/生成器
- Python中的迭代器,生成器,协程(coroutine)--整理自CSDN微信公开课
- ·python·用生成器和迭代器实现自己的xrange
- python——迭代器和生成器
- python3 迭代器与生成器整理12.24
- python 父类、子类,迭代器、生成器
- python的迭代器和生成器
- Python3+迭代器与生成器
- python学习笔记(5)--迭代器,生成器,装饰器,常用模块,序列化
- 【Python】迭代器、生成器、yield单线程异步并发实现详解
- Python生成器和迭代器的关系