반응형
🌈 파이썬 순열, 조합 값 반환받기
파이썬의 내장 모듈인 itertools를 이용하면 순열과 조합의 값을 반환받을 수 있다.
1️⃣ 순열 (permutation)
순열이란 몇 개를 골라 순서를 고려해 나열한 경우의 수를 말한다.
즉, 서로 다른 n 개 중 r 개를 골라 순서를 정해 나열하는 가짓수이며 순열은 가능한 모든 순서쌍을 만들며 중복된 값은 갖지 않는다.
import itertools
arr = ['A', 'B', 'C']
nPr = itertools.permutations(arr, 2)
print(list(nPr))
# [('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B')]
2️⃣ 조합 (combination)
조합이란 서로 다른 n개 중에서 r개(n≥r) 를 선택하여 쌍을 만들 때 각각의 값을 n개 중에서 r개 선택한 것을 의미한다. 또한 조합의 각각의 쌍에서 순서는 큰 의미를 갖지 않으며, 중복값도 갖지 않는다.
import itertools
arr = ['A', 'B', 'C']
nCr = itertools.combinations(arr, 2)
print(list(nCr))
# [('A', 'B'), ('A', 'C'), ('B', 'C')]
3️⃣ 정리
이터레이터 | 인자 | 결과 |
product() | p, q, … [repeat=1] |
데카르트 곱(cartesian product), 중첩된 for 루프와 동등 |
permutations() | p[, r] | r-길이 튜플들, 모든 가능한 순서, 반복되는 요소 없음 |
combinations() | p, r | r-길이 튜플들, 정렬된 순서, 반복되는 요소 없음 |
combinations_with_replacement() | p, r | r-길이 튜플들, 정렬된 순서, 반복되는 요소 있음 |
예 | 결과 |
product('ABCD', repeat=2) | AA AB AC AD BA BB BC BD CA CB CC CD DA DB DC DD |
permutations('ABCD', 2) | AB AC AD BA BC BD CA CB CD DA DB DC |
combinations('ABCD', 2) | AB AC AD BC BD CD |
combinations_with_replacement('ABCD', 2) | AA AB AC AD BB BC BD CC CD DD |
📌 참고사이트
반응형
'Backend > Python' 카테고리의 다른 글
[Python] 컬렉션의 반복문 실행 시 인덱스 부여하기(enumerate) (0) | 2023.01.29 |
---|---|
[Python] 파이썬 튜플 이해하기 (+사용 방법) (0) | 2022.11.03 |
[Python] 파이썬 집합 연산자 사용 하기 (0) | 2022.11.01 |
[Python] 파이썬 올림, 내림, 반올림, 소수점 자르기 (0) | 2022.10.28 |
[Python] 우선순위 큐(PriorityQueue) 사용 방법 (0) | 2022.10.25 |
최근댓글