一、生成器
1.1 什么是生成器
generator:一边生成一边计算后面元素的机制,称为生成器,生成器里面保存的是算法,只有需要用到才会计算后面的值
1.2 通过列表生成式创建生成器
我们可以将列表生成式的中括号改成小括号就创建了一个生成器
list = [i for i in range(10)]
print(type(list)) #
gen = (i for i in range(10))
print(type(gen)) #
1.3 通过函数创建生成器
带有yield的函数称为
列表生成式语法:
[x*x for x in range(0,10)] //列表生成式,这里是中括号
//结果 [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
(x*x for x in range(0,10)) //生成器, 这里是小括号
//结果 at 0x7f0b072e6140>
二者的区别很明显:
一个直接返回了表达式的结果列表, 而另一个是一个对象,该对象包含了对表达式结果的计算引用, 通过循环可以直接输出
g = (x*x for x in