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