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

猜你喜欢

转载自www.cnblogs.com/babysteps/p/python_note_12.html