python3.x 生成器(generator)用法详解 和 注意事项

一. 注意事项:

  1. python 3中取消了 xrange() ,只保留了range函数,python 2中才有xrange函数。利用xrange制作生成器的需求,现在可以用range加小括号() 来做。例如:
>>> a = (i for i in range(3))  # 外围加了一个小括号,加中括号就是list了
>>> print(a)
<generator object <genexpr> at 0x000002xxxxxxx>
  1. python 3中还修改了next()函数,修改为 __next__() ,即前后多了双下划线
>>> a.__next__()  # 还是上面那个a
0
>>> a.__next__() 
1
>>> a.__next__() 
2
>>> a.__next__() 
StopIteration 

二. 用法详解

下面两篇文章写得很好,分别从两个角度入手解释了生成器,一起看应该就能看懂生成器是什么和基本用法了。
文章1. https://blog.csdn.net/mieleizhi0522/article/details/82142856
文章2. https://www.liaoxuefeng.com/wiki/897692888725344/923029685138624

以上
喜欢记得点赞、关注、分享哈!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 许多 Python 初学者想知道他们应该从 Python 的哪个版本开始学习。对于这个问题我的答案是 “你学习你喜...
    python瑟维尔阅读 255评论 0 0
  • Python语言特性 1 Python的函数参数传递 看两个如下例子,分析运行结果: 代码一: a = 1 def...
    伊森H阅读 3,096评论 0 15
  • Python语言特性 1 Python的函数参数传递 看两个如下例子,分析运行结果: 代码一: a = 1 def...
    时光清浅03阅读 516评论 0 0
  • 生成器(Generator)可以说是在 ES2015 中最为强悍的一个新特性,因为生成器是涉及到 ECMAScri...
    Will_Wen_Gunn阅读 4,844评论 0 9
  • “民之失德,乾糇以愆;他山之石,可以攻玉。”- 《诗经》 绝大部分开发者开发iOS或者Mac APP 都会选择Xc...
    f9dd77add98e阅读 11,959评论 3 6