元祖推导式返回值就是一个生成器,
生成器本质就是一个迭代器
和迭代器的区别:
迭代器是系统内置的, 重写不了
生成器可以手动改写迭代逻辑
生成器的创建方式:
1.生成器表达式(元祖推导式)
2.生成器函数(yield关键字)
生成器表达式
# 生成5以内的数i, 这个数字左移i位
gen = (i << i for i in range(5))
# 遍历这个生成器
for i in gen:
print(i)
可以使用list强转成列表
res = list(gen)
print(res)