logo

可能なすべての組み合わせを出力するための Python の itertools.combinations() モジュール

サイズ n の配列を指定すると、配列内の r 要素の可能なすべての組み合わせを生成して出力します。例:

Input : arr[] = [1, 2, 3, 4], r = 2 Output : [(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)]>

推奨: あなたのアプローチを試してみてください {行きます} 解決策に進む前に、まず。

この問題には既存の再帰的解決策があります。「サイズ n の指定された配列内の r 要素の可能なすべての組み合わせを出力する」リンクを参照してください。この問題をPythonで解決します。 itertools.combinations() モジュール。

itertools.combinations() は何をしますか?

これは、入力反復可能オブジェクトから r 個の長さの要素のサブシーケンスを返します。組み合わせは辞書編集順に出力されます。したがって、入力反復可能オブジェクトがソートされている場合、結合タプルはソートされた順序で生成されます。



    itertools.combinations(iterable, r) : 繰り返される要素のない、ソートされた順序で r の長さのタプルを返します。たとえば、combinations('ABCD', 2) ==> [AB, AC, AD, BC, BD, CD]。 itertools.combinations_with_replacement(iterable, r) : 繰り返される要素を含む r の長さのタプルをソート順に返します。たとえば、combinations_with_replacement('ABCD', 2) ==> [AA、AB、AC、AD、BB、BC、BD、CC、CD、DD]。

Python3




# Function which returns subset or r length from n> from> itertools>import> combinations> def> rSubset(arr, r):> ># return list of all subsets of length r> ># to deal with duplicate subsets use> ># set(list(combinations(arr, r)))> >return> list>(combinations(arr, r))> # Driver Function> if> __name__>=>=> '__main__'>:> >arr>=> [>1>,>2>,>3>,>4>]> >r>=> 2> >print> (rSubset(arr, r))>

>

>

出力

[(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)]>