リストのデカルト積の計算
複数のリストからデカルト積、または値の可能なすべての組み合わせを取得するには、次のような共通の課題が生じます。プログラミング。リストのリストの例を考えてみましょう:
somelists = [ [1, 2, 3], ['a', 'b'], [4, 5] ]
理想的な出力:
私たちが求める結果は、入力リスト:
[(1, 'a', 4), (1, 'a', 5), (1, 'b', 4), (1, 'b', 5), (2, 'a', 4), (2, 'a', 5), ...]
Python のソリューション: itertools.product
Python 標準ライブラリは、このタスクのための強力なツールである itertools.product を提供します。 Python 2.6 以降で利用可能となり、この関数は入力シーケンスを個別の引数として期待します。
import itertools for element in itertools.product(*somelists): print(element)
または、各シーケンスを引数として明示的に指定することもできます。
for element in itertools.product([1, 2, 3], ['a', 'b'], [4, 5]): print(element)
itertools.product は戻ります。各組み合わせをタプルとして生成するジェネレーター オブジェクト。必要なリストを取得するには、ジェネレーターを反復処理し、必要に応じて各タプルをリストに変換します。
itertools.product を利用すると、複数のリストのデカルト積を効率的に計算でき、ネストされたリストの必要性を回避できます。ループを作成し、この一般的なプログラミングの課題に対する簡潔で読みやすいソリューションを確保します。
以上がPython でリストのデカルト積を効率的に計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。