生成器還可以疊加來組成生成器管道

# Fibonacci數生成器
def fib():
    a, b = 0, 1
    while True:
        a, b = b, a + b
        yield a


# 偶數生成器
def even(gen):
    for val in gen:
        if val % 2 == 0:
            yield val


def main():
    gen = even(fib())
    for _ in range(10):
        print(next(gen))


if __name__ == '__main__':
    main()

輸出:

2
8
34
144
610
2584
10946
46368
196418
832040
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章