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

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

Patricia Arquette
リリース: 2024-12-19 09:27:09
オリジナル
841 人が閲覧しました

How Can I Generate All Possible Combinations of a List's Elements in Python?

リストの要素の可能なすべての組み合わせを生成する

リストの要素から可能なすべての 2^N の組み合わせを生成する方法を探しています。 15 個の要素のリスト。元の順序を維持しながら、任意の長さの組み合わせに対応します。バイナリ表現を使用するアプローチは実行可能なオプションですが、より包括的なソリューションを検討してみましょう。

バイナリ表現に依存する代わりに、Python 標準ライブラリの itertools.combinations() 関数の採用を検討してください。この関数は、指定された反復可能オブジェクトから指定された長さのすべての組み合わせのシーケンスを生成します。長さパラメータを変更することで、任意のサイズの組み合わせを取得できます。

次の Python コードは、このアプローチを示しています。

import itertools

stuff = [1, 2, 3]

# Loop through all possible lengths
for L in range(len(stuff) + 1):
    # Generate combinations of length L
    for subset in itertools.combinations(stuff, L):
        print(subset)
ログイン後にコピー

このコードは、要素の 32,768 通りの可能な組み合わせをすべて生成します。

あるいは、より効率的なソリューションとして、chain() を使用することもできます。

import itertools

from itertools import chain, combinations

def all_subsets(ss):
    return chain(*map(lambda x: combinations(ss, x), range(0, len(ss)+1)))

for subset in all_subsets(stuff):
    print(subset)
ログイン後にコピー

このコードは同じ結果を達成しますが、より簡潔でおそらくエレガントな方法で実現されます。

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

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