Python – itertools

概要

itertoolsは高速でメモリー効率のよいイテレーターを生成するツールを提供する。

主となる引数にはコレクション(リスト、タプル)を与える。

文字列を渡すと文字列中の1文字ずつを要素としたリストと同じ効果。

range()関数などコレクションを生成する対象も使える。

無限イテレーター(infinite iterators)

無限イテレーターは、コレクションの要素を繰り返し取り出し続ける。ループ処理に使う場合、break文などの終了処理が必要。

count()

itertools.count(start, [step])
startに与えた数値から初めてstepずつ増加させて取り出す。stepを省略した場合は1ずつ増やす。

cycle()

itertools.cycle(p)
コレクションpを与えて、その要素p0, p1, …, plastを取り出し、その後p0へ戻って繰り返す。

repeat()

itertools.repeat(elem [, n])
elemで与えた要素を第2引数で与えた数値の回数分繰り返す。第2引数を省略すると無限回繰り返す。

組み合わせイテレーター(combinatoric iterator)

組み合わせイテレーターは、コレクションの要素から指定した数を取り出し、それらの直積、順列、組み合わせを結果とする。

product()

itertools.product(p [, repeat=n])
コレクションpの要素について、repeatで指定した数の直積の結果をタプルで返す。同一の要素、順番の異なる同じ組み合わせの要素を持つ結果を許す。
第2引数repeatを省略すると要素数1のタプルを返す。

permutations

itertools.permutations(p [, r=n])
コレクションpの要素について、rで指定した数の順列の結果をタプルで返す。統一要素の組はなく、同じ組み合わせの要素の順番が異なる結果は許す。
第2引数はrepeatではなくrである点に注意。rを省略すると、全ての要素に対する組み合わせを返す。

combinations

itertools.combinations(p, repeat=n)
コレクションpの要素について、repeatで指定した数の組み合わせの結果をタプルで返す。同一要素の組はなく、同じ組み合わせで順番が異なるものは同じ結果となる。
第2引数rは省略できない。省略するとそれ以降の実行がされないなど動作が不定になる。

combinations_with_replacement

itertools.combinations_with_replacement
組み合わせに、同一要素の重複を許す。
第2引数rは省略できない。省略するとそれ以降の実行がされないなど動作が不定になる。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です