码迷,mamicode.com
首页 > 编程语言 > 详细

学习python第十二天,函数4 生成器

时间:2018-12-31 21:58:51      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:创建   ef6   code   class   获得   列表生成式   生成器   tor   int   

在Python中,这种一边循环一边计算的机制,称为生成器:generator

要创建一个generator,有很多种方法。第一种方法很简单,只要把一个列表生成式的[]改成(),就创建了一个generator:

>>> L = [x * x for x in range(10)]
>>> L
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
>>> g = (x * x for x in range(10))
>>> g
<generator object <genexpr> at 0x1022ef630>

创建Lg的区别仅在于最外层的[]()L是一个list,而g是一个generator。

我们可以直接打印出list的每一个元素,但我们怎么打印出generator的每一个元素呢?

如果要一个一个打印出来,可以通过next()函数获得generator的下一个返回值:

当然,上面这种不断调用next(g)实在是太麻烦了,正确的方法是使用for循环,因为generator也是可迭代对象:

>>> g = (x * x for x in range(10))
>>> for n in g:
...     print(n)

  

学习python第十二天,函数4 生成器

标签:创建   ef6   code   class   获得   列表生成式   生成器   tor   int   

原文地址:https://www.cnblogs.com/buildydream/p/10203339.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!