ホームページ > バックエンド開発 > Python チュートリアル > Python でリストのデカルト積を効率的に計算するにはどうすればよいですか?

Python でリストのデカルト積を効率的に計算するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-29 12:09:11
オリジナル
205 人が閲覧しました

How Can I Efficiently Compute the Cartesian Product of Lists in Python?

リストのデカルト積の計算

複数のリストからデカルト積、または値の可能なすべての組み合わせを取得するには、次のような共通の課題が生じます。プログラミング。リストのリストの例を考えてみましょう:

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート