迭代器
迭代器对象就是实现了iter() 和 next()方法的对象.其中iter()返回迭代器本身,而next()返回容器的下一个元素,在结尾处引发StopInteration异常.
总结
- 所有的iterable都可以通过内置函数iter()转换为iterator
- 迭代器的优点:省内存.它是一种通过延时创建的方式生成一个序列,只有在需要的时候才被创建.
- 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问结束,只能往前不能后退
- 迭代器有两个基本的方法:iter,text方法
- 内置函数iter(),next(),本质上都是用的对象的iter()和next()方法.
生成器
在Python中,这种一边循环一边计算的机制,称为生成器(Generator)。
1. 语法上和普通的函数非常相似,都是用def进行定义.唯一的不同是普通的函数是用return返回,而生成器是通过yield语句返回一个值
2.自动实现迭代器协议:对于生成器,Python会自动实现它的可迭代协议,以便用在可以迭代的地方.所以我们可调用它的next方法,获取下一个元素,并且在没有值可以返回的时候,生成器会自动产生StopIteration异常
3.状态挂起:生成器使用yield语句返回一值.yield语句挂起该生成器函数的状态,保留足够的信息,以便之后从它离开的地方继续执行.
可迭代对象
可以直接作用于for循环的叫可迭代对象,可迭代对象包括以下2种:
1.list、tuple、set、dict、str等集合数据类型
2.生成器
我转载能不能看到连接?
可以参考