logo

itertools.combinations() w Pythonie, aby wydrukować wszystkie możliwe kombinacje

Mając tablicę o rozmiarze n, wygeneruj i wydrukuj wszystkie możliwe kombinacje r elementów tablicy. Przykłady:

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

Zalecane: wypróbuj swoje podejście {wchodzi} najpierw, zanim przejdziemy do rozwiązania.

Ten problem ma istniejące rozwiązanie rekurencyjne, zobacz Wydrukuj wszystkie możliwe kombinacje r elementów w danej tablicy łącza o rozmiarze n. Rozwiążemy ten problem w Pythonie, używając itertools.combinations() moduł.



Co robi itertools.combinations()?

Zwraca podciągi elementów o długości r z iterowalnego wejścia. Kombinacje są emitowane w porządku sortowania leksykograficznego. Zatem, jeśli iterowalne wejście wejściowe jest posortowane, krotki kombinacji zostaną utworzone w posortowanej kolejności.

    itertools.combinations(iterable, r): Zwraca krotki o długości r w posortowanej kolejności, bez powtarzających się elementów. Na przykład kombinacje („ABCD”, 2) ==> [AB, AC, AD, BC, BD, CD]. itertools.combinations_with_replacement(iterable, r) : Zwraca krotki o długości r w posortowanej kolejności z powtarzającymi się elementami. Na przykład Combines_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))>

>

kody kolorów Java

>

Wyjście

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