码迷,mamicode.com
首页 > 其他好文 > 详细

生成器

时间:2018-01-12 13:26:48      阅读:103      评论:0      收藏:0      [点我收藏+]

标签:生成器   生成   callable   style   col   gpo   color   除了   pos   

生成器概念辨析(generator)

本质上是一种边循环边计算的机制,不像函数那样预先计算出所有值,而是需要时再打印,节省了空间

a = [i*i for i in range(5)]
print(a)
#打印结果为[0,1,4,9,16]

在列表生成式a中,一旦定义了列表里的元素数量和相互关系,调用print时就会预先计算好所有元素的值并打印

b = (i*i for i in range(5))
print(b)
#打印结果为<generator object <genexpr> at 0x00467BA0>
b = (i*i for i in range(5))
print(b(0))
#报错: ‘generator‘ object is not callable

在生成器b中,无法像之前类似的语法那样打印所有值,因为print不能调用到b,实际上除了next(),其他函数均无法调用到b的值。

b = (i*i for i in range(5))
for i in b:
    print(i)
#打印结果为
#0
#1
#4
#9
#16

通过for循环取得b内的值

生成器

标签:生成器   生成   callable   style   col   gpo   color   除了   pos   

原文地址:https://www.cnblogs.com/lifeasdog/p/8275029.html

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