先週ちょっと紹介したitertoolsモジュールを少しずつ見ていくことにしよう。
cf. http://docs.python.jp/2.7/library/itertools.html
無限イテレータ
まずは、itertools.count。初期値から1ずつカウントアップしていく。
>>> for i in itertools.count(0): ... if i > 10: ... break ... print i ... 0 1 2 3 4 5 6 7 8 9 10
第2引数にステップを指定することも可能。
>>> for i in itertools.count(0, 3): ... if i > 10: ... break ... print i ... 0 3 6 9
itertolls.cycle はシーケンスを無限に繰り返す。
>>> i = 0 >>> for x in itertools.cycle(['foo', 'bar', 'baz']): ... i += 1 ... if i > 10: ... break ... print x ... foo bar baz foo bar baz foo bar baz foo
itertools.repeat は、オブジェクトを無限に繰り返す。
>>> i = 0 >>> for x in itertools.repeat("Hello"): ... i += 1 ... if i > 10: ... break ... print x ... Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello
第2引数に回数を指定することも可能。
>>> for x in itertools.repeat("hello", 5): ... print x ... hello hello hello hello hello
itertools の関数は数が多いので今日はここまで。