python 標準ライブラリ4
itertoolsでの反復処理
itertoolsには、特別な目的を持ったイテレータがある
これらは、for ... in ループ内で呼び出されると、
一度に一個の要素を返す。
chain()は、引数全体がひとつのイテラブルであるかのように
扱い、そのなかの要素を反復処理する
import itertools
for item in itertools.chain([1, 2], ['a', 'b'])
print(item)
1
2
a
b
cyle()
無限反復子で、引数から循環的に要素を返す。
import itertools
for item in itertools.cycle([1, 2]):
print(item)
1
2
1
2
1
2
これが永遠に続く、止めるにはCTRL + c を押す
accumulate()<
要素をひとつにまとめた値を計算する、デフォルトでは和を計算する
import itertools
for item in itertools.acumulate[1, 2, 3, 4]):
print(item)
1
3
6
10
第2引数として関数を受け付け、この引数が加算の代わりに使われる
import itertools
def multiply(a, b):
return a * b
for item in itertools.acumulate[1, 2, 3, 4], multiply):
print(item)
1
2
6
24
これ以外にも
多くの関数を定義している、特に、順列、組み合わせの関数は、必要なとき
には時間の節約になる。
9:焦り本能を抑えるには
小さな一歩を重ねよう