ジェネレータは複雑な処理を分解するのにも役立つ。
複数のデータ群を仕様するようなデータ変換アルゴリズムの効率が向上する。
# -*- coding: euc-jp -*-" def power(values): for value in values: print('powering %s' % value) yield value def adder(values): for value in values: print('adding to %s' % value) if value % 2 == 0: yield value + 3 else: yield value + 2 elements = [1, 4, 7, 9, 12, 19] res = adder(power(elements)) print next(res) # powering 1 # adding to 1 # 3 print next(res) # powering 4 # adding to 4 # 7 print next(res) # powering 7 # adding to 7 # 9