PythonでItertools.permutations()を使用する

PythonでItertools.permutations()を使用してみます。

Itertoolsは、イテレータ(データの流れを表現するオブジェクト,リストなどを順番にデータを取り出す機能を提供するもの)を処理するための関数のコレクションを含むPythonモジュールで、リストや文字列などの反復可能オブジェクトを簡単に反復することができます。

そして、permutations()関数は、組み合わせジェネレーターで、順列、組み合わせ、デカルト積などの組み合わせ構造を単純化するために使用される再帰ジェネレーターです。これを用いることで、イテレータの可能なすべての配置が返されます。

■Python

今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)

■Itertools.permutations()関数を使用する

それでは、実際にItertools.permutations()関数を使用してみます。

■コード

from itertools import permutations

test = "Hello"

p = permutations(test)

for t in list(p):
    print(t)

「from import」でitertoolsのpermutationsを呼び出します。その後、testという変数を定義し、その中にイテレーターを格納します。今回は英語の文字列を格納しています。

その後、pという変数を定義し、permutations()を用います。括弧内には引数,パラメータとして、イテレーター(test変数)を渡します。引数,パラメーターはこれ以外にも「r」(必要な順列の長さ)を渡すことができますが、今回は「r」を渡しません。渡さない場合は、イテレーターのデフォルトの長さとして「r」を想定し、「r」のすべての可能な順列が返されます。

次に、for文を用いてpermutations()を用いて返された結果の全てをlist()でリスト化し、リスト化したものを、順番にj変数に格納し、print()でj変数の情報を出力します。

■実行・検証

このスクリプトを「i_per.py」という名前で、Pythonが実行されている作業ディレクトリ(カレントディレクトリ)に保存し、コマンドプロンプトから実行してみます。

実行してみると、Itertools.permutations()を用いたことで、引数,パラメータとして渡したイテレーターから、組み合わせ可能なすべての順序を出力させることができました。

コメント

タイトルとURLをコピーしました