导航

生成器表达式

Posted on 2019-03-28 23:35  菜花教授  阅读(73)  评论(0编辑  收藏  举报

元祖推导式返回值就是一个生成器,
生成器本质就是一个迭代器

和迭代器的区别:

迭代器是系统内置的, 重写不了
生成器可以手动改写迭代逻辑

生成器的创建方式:

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)