01.生成器 >>>[i * i for i in range(5)] #列表推导式 [0, 1, 4, 9, 16] ### 生成器表达式 >>>(i * i for i in range(5)) <generator object <genexpr> at 0x000001AB98F08DE0> 查看生成器对应的所有元素,有两种方式 多次调用内置函数next(),每次调用都返回生成器的下一个元素,直到抛出异常StopIteration时表示没有更多元素了。 >>>a = (i * i for i in range(5)) >>>print(next(a)) 0 >>>print(next(a)) 1 >>>print(next(a)) 4 >>>print(next(a)) 9 >>>print(next(a)) 16 >>>print(next(a)) StopIteration Traceback (most recent call last) <ipython-input-31-94b12d3903f7> in <module> ----> 1 print(next(a)) StopIteration: 使用 for-in 语句对生成器进行迭代,这样就不需要关心异常StopIteration了。 a = (i * i for i in range(5)) for j in a: print(j) --------------------------------- 0 1 4 9 16