从形式上看,生成器推导式与列表推导式类似,但前者要使用小括号,列表推导式直接生成列表对象,生成器辅导式生成的是一个生成器对象。
s=(x*2 for x in range(5))
==>s
<generator object <genexpr> at 0x0000020CC6D18CF0>
tuple(s)
==>(0, 2, 4, 6, 8)
list(s)==>[](只能访问一次元素,第二次就为空了,需要再生成一次)
s=(x*2 for x in range(5))
s.__next__()[注意,next两边是两个下划线]==>0
s.__next__()==>2
s.__next__()==>4
s.__next__()==>8
s.__next__()==>报错