生成器表达式现用现生成,列表推导式一次性生成静态数据
L = [2, 3, 5, 7] L2 = (x**2+1 for x in L) it = iter(L2) print(next(it)) L[1] = 10 print(next(it)) #由于是现取现拿,因此L改变之后,在去遍历L里面的现在要取的数据,在用来next,因此打印出来的数据也随之改变了。 L = [2, 3, 5, 7] L2 = [x**2+1 for x in L] it = iter(L2) print(next(it)) L[1] = 10 print(next(it)) #由于列表推导式,因此列表就固定死了,无论L之后怎么变,都不会影响到L2 输出结果: tarena@tedu:~/zengsf$ python3 exercise821.py 5 101 5 10