l = [2, 3, 5, 7]
l2 = [x ** 2 + 1 for x in l]
it = iter(l2)
print(next(it)) # ?
l[1] = 30
print(next(it)) # ??
以下是生成器表达式
l = [2, 3, 5, 7]
l2 = (x ** 2 + 1 for x in l)
it = iter(l2)
print(next(it)) # ?
l[1] = 30
print(next(it)) # ??
总结:
生成器表达式是现用现生成,列表推导式一次性生成静态数据