ホームページ >バックエンド開発 >Python チュートリアル >Python でリストのリストから可能なすべての組み合わせを効率的に生成するにはどうすればよいですか?

Python でリストのリストから可能なすべての組み合わせを効率的に生成するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-10 11:58:14972ブラウズ

How can I efficiently generate all possible combinations from a list of lists in Python?

Python でのリストのリストの組み合わせ

プログラミングでは、複数のリストの要素を組み合わせるのが一般的なタスクです。この質問は、リストのサイズに関係なく、リストのリストから項目の可能なすべての組み合わせを生成することに焦点を当てています。

これを実現するために、Python ライブラリは itertools.product 関数を使用した独創的なソリューションを提供します。この関数は、可変数の反復可能オブジェクトを入力として受け取り、デカルト積を返します。これにより、基本的に、各反復可能オブジェクトから要素の可能なすべての組み合わせが生成されます。

たとえば、リストの入力リストを考えてみましょう: [[1,2 ,3],[4,5,6],[7,8,9,10]].

import itertools
a = [[1,2,3],[4,5,6],[7,8,9,10]]
combinations = list(itertools.product(*a))

結果の組み合わせリストには次のものが含まれます入力リストからの要素の可能なすべての組み合わせ:

[(1, 4, 7), (1, 4, 8), (1, 4, 9), (1, 4, 10), (1, 5, 7), (1, 5, 8), (1, 5, 9), (1, 5, 10),
(1, 6, 7), (1, 6, 8), (1, 6, 9), (1, 6, 10), (2, 4, 7), (2, 4, 8), (2, 4, 9), (2, 4, 10),
(2, 5, 7), (2, 5, 8), (2, 5, 9), (2, 5, 10), (2, 6, 7), (2, 6, 8), (2, 6, 9), (2, 6, 10),
(3, 4, 7), (3, 4, 8), (3, 4, 9), (3, 4, 10), (3, 5, 7), (3, 5, 8), (3, 5, 9), (3, 5, 10),
(3, 6, 7), (3, 6, 8), (3, 6, 9), (3, 6, 10)]

itertools.product の機能により、リストのリストからの組み合わせの生成は、Python での簡潔で洗練された操作になります。

以上がPython でリストのリストから可能なすべての組み合わせを効率的に生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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