python 生成器表达式

2020-03-24  本文已影响0人  Noza_ea8f

列表推导式

ls1 = [i * 2 for i in range(5)]  # 列表推导式
print(ls1)
输出
[0, 2, 4, 6, 8]

这里的值直接生成并存在内存中;

生成器表达式

ls2 = (i * 2 for i in range(5))  # 生成器表达式
print(ls2)
输出
<generator object <genexpr> at 0x00000292C92F1E58>

这是一个生成器对象;
看看里面有什么,打印一下:

print(ls2.__next__())
print(ls2.__next__())
输出
0
2

开始时值并没有生成,当取值时值开始生成出来;
这样就节省了内存;

特别声明

在一个生成器对象中;

列表推导式和生成器表达式的区别

只要把[]换成()列表推导式就变成了生成器表达式

上一篇 下一篇

猜你喜欢

热点阅读