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()는 무엇을 합니까?

입력 iterable에서 요소의 r 길이 하위 시퀀스를 반환합니다. 조합은 사전식 정렬 순서로 표시됩니다. 따라서 입력 반복 가능 항목이 정렬되면 조합 튜플이 정렬된 순서로 생성됩니다.

    itertools.combinations(iterable, r) : 반복되는 요소 없이 정렬된 순서로 r 길이 튜플을 반환합니다. 예를 들어 조합('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]입니다.

파이썬3








# 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)]>