首页 > 编程语言 > 详细

python迭代器和生成器

时间:2019-03-31 01:00:49      阅读:169      评论:0      收藏:0      [点我收藏+]

迭代器

1. 迭代器:可以被next()函数调用并不断返回下一个值的对象称为迭代器

2. 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。

3. 迭代器有两个基本的方法:iter() 和 next()。

4. 可使用isinstance()判断一个对象是否是迭代器对象(Iterator)

5. Python3中range(n)生成的是迭代器对象; python2中xrange(n)生成的才是迭代器对象

生成器

1. 在Python中使用了yield的函数称为生成器

2. 什么时候使用yield: 一个函数 f,f 返回一个 list,这个 list 是动态计算出来的(不管是数学上的计算还是逻辑上的读取格式化),并且这个 list 会很大(无论是固定很大还是随着输入参数的增大而增大),这个时候,我们希望每次调用这个函数并使用迭代器进行循环的时候一个一个的得到每个 list 元素而不是直接得到一个完整的 list 来节省内存,这个时候 yield 就很有用。

3. 生成器其实是一种特殊的迭代器,不过这种迭代器更加优雅。仅需要一个yield关键字。

4. 任何生成器也是以一种懒加载的模式生成值。

5. 生成器相比其它容器对象它更能节省内存和CPU。执行一次运算一次。

6. 生成器中的元素第一之后并不实际生成。

7. 在一个 generator function 中,如果没有 return,则默认执行至函数完毕,如果在执行过程中 return,则直接抛出 StopIteration 终止迭代。

 

python迭代器和生成器

原文:https://www.cnblogs.com/leleyao/p/10629840.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!