python 生成器推导式与列表推导式的区别


生成器表达式现用现生成,列表推导式一次性生成静态数据

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
原文地址:https://www.cnblogs.com/zengsf/p/9514823.html