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

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

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-24 16:55:21110ブラウズ

How Can I Efficiently Generate Cartesian Products of Multiple Lists in Python?

複数のリストからデカルト積を生成する

複数のリストのデカルト積を取得し、値のすべての可能な組み合わせが生成されるのは、一般的な方法です。プログラミングにおけるタスク。 Python 2.6 以降で利用できる強力な Python モジュールである itertools.product を使用すると、この目標を簡単に達成できます。

itertools.product を使用するには、結合したいリストを引数として指定するだけです。たとえば、次のリストのセットがあるとします。

somelists = [
   [1, 2, 3],
   ['a', 'b'],
   [4, 5]
]

次のようにデカルト積を取得できます。

import itertools

for element in itertools.product(*somelists):
    print(element)

このコードは、入力リストから値の可能なすべての組み合わせを効果的に生成します。 。出力は次のようになります:

(1, 'a', 4)
(1, 'a', 5)
(1, 'b', 4)
(1, 'b', 5)
(2, 'a', 4)
(2, 'a', 5)
...

また、リストが個別の引数として明示的に渡された場合、コードは次のようになります。

for element in itertools.product([1, 2, 3], ['a', 'b'], [4, 5]):
    print(element)

itertools.product の柔軟性を利用することにより、を使用すると、入力データがネストされたリストやさまざまな長さのリストで構成される複雑なケースを簡単に処理できます。

以上がPython で複数のリストのデカルト積を効率的に生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。