python学习笔记12-生成器

  • 生成器是用于创建迭代器的工具,写法类似函数,但返回时用yield替代return
def reverse(data):
    for i in range(len(data)-1, -1, -1):
        yield data[i]
for i in reverse([1, 2, ,3, 4]):
    print(i)

4
3
2
1

  • 某些简单的生成器可以用生成器表达式替代,写法上类似列表推导式
square = (x**2 for x in range(10))
for i in square:
    print(i)

0
1
4
9

  • 生成器表达式也可以直接作为函数的参数
sum(x**2 for x in range(10))

285

posted @ 2019-05-07 23:38  babysteps  阅读(93)  评论(0编辑  收藏  举报