itertools의 combinations() 함수 이해 및 활용
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
개발 툴
대상자
- Python 개발자 (중간 수준)
- 반복자(Iterator)와 조합 알고리즘 활용이 필요한 프로젝트
- 데이터 처리, 조합 생성, 순열 계산 등에 관심 있는 개발자
핵심 요약
itertools.combinations()
는iterable
에서 중복 없이 모든 조합을 생성하는 반복자 함수- 매개변수
- iterable
: 조합을 생성할 원소가 담긴 객체 (예: 'ABC'
, ['A', 'B', 'C']
)
- r
: 생성할 조합의 원소 개수 (예: r=2
→ 2개의 원소로 구성된 조합)
- 출력 예시
- r=1
→ ('A',)
, ('B',)
, ('C',)
- r=2
→ ('A', 'B')
, ('A', 'C')
, ('B', 'C')
섹션별 세부 요약
1. `combinations()`의 기본 개념
combinations()
는 중복 없이 모든 가능한 조합을 순서 없이 생성r=0
일 경우 빈 튜플()
만 반환r
이iterable
의 길이보다 클 경우 빈 결과
2. `r=1`일 때의 예시
iterable='ABC'
→('A',)
,('B',)
,('C',)
r=1
은 단일 원소로 구성된 조합만 생성
3. `r=2`일 때의 예시
iterable='ABC'
→('A', 'B')
,('A', 'C')
,('B', 'C')
- 순서 없이 모든 두 원소의 조합 생성
4. `r=3`일 때의 예시
iterable='ABC'
→('A', 'B', 'C')
r
이iterable
의 길이와 같을 경우 하나의 조합만 생성
결론
itertools.combinations()
는 중복 없이 모든 조합을 생성하는 데 유용r
값 설정에 따라 조합의 크기를 조절할 수 있음- 데이터 분석, 조합 생성, 알고리즘 설계 등에 활용 가능