可以用for和while循环来调用生成器,取里面的值。 比如a=(i for i in range (10) for i in a: print(i) 输出为: 01 2 3 4 5 6 7 8 9

while True: print(next(a) 输出为: 01 2 3 4 5 6 7 8 9 Traceback (most recent call last): File "F:/python/2019.6.2/xuexi/6.2/列表生成器.py", line 21, in <module> print(next(a)) StopIteration 所以用for循环,执行完后不会报错,while会报错。

python3里的range其实就是一个生成器。