반응형

 

 

 

 

 

 

🌈 파이썬 순열, 조합 값 반환받기

파이썬의 내장 모듈인 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

 

 

 

 

 

 

 

 

📌 참고사이트

 Python Docs :: itertools

 

 

 

 

 

 

 

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기