코딩하는 해맑은 거북이
[Python] 순열(Permutation)과 조합(Combination) 본문
해당 글은 아래의 2가지를 다룬다.
1. 순열(Permutation)
2. 조합(Combination)
1. 순열(Permutation) : nPr
: 서로 다른 n개에서 r개를 뽑아 순서를 정해서 일렬로 나열하는 것.
from itertools import permutations
perm = list(permutations('n개 원소를 갖는 리스트', r))
<예제>
from itertools import permutations
data = [1, 2, 3, 4]
perm = list(permutations(data, 2))
print(perm)
perm = list(permutations(data, 3))
print(perm)
[(1, 2), (1, 3), (1, 4), (2, 1), (2, 3), (2, 4), (3, 1), (3, 2), (3, 4), (4, 1), (4, 2), (4, 3)]
[(1, 2, 3), (1, 2, 4), (1, 3, 2), (1, 3, 4), (1, 4, 2), (1, 4, 3), (2, 1, 3), (2, 1, 4), (2, 3, 1), (2, 3, 4), (2, 4, 1), (2, 4, 3), (3, 1, 2), (3, 1, 4), (3, 2, 1), (3, 2, 4), (3, 4, 1), (3, 4, 2), (4, 1, 2), (4, 1, 3), (4, 2, 1), (4, 2, 3), (4, 3, 1), (4, 3, 2)]
2. 조합(Combination) : nCr
: 서로 다른 n개에서 순서를 생각하지 않고 r개를 뽑는 것.
from itertools import combinations
perm = list(combinations('n개 원소를 갖는 리스트', r))
<예제>
from itertools import combinations
data = [1, 2, 3, 4]
combi = list(combinations(data, 2))
print(combi)
combi = list(combinations(data, 3))
print(combi)
[(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)]
[(1, 2, 3), (1, 2, 4), (1, 3, 4), (2, 3, 4)]
'Python > 기본' 카테고리의 다른 글
[Python] 리스트 순서고려 여부에 따른 중복 제거 방법 (0) | 2023.02.02 |
---|---|
[Python] Counter 클래스 정렬 방법 (0) | 2023.01.20 |
[Python] 원하는 조건에 맞는 항목만 걸러주는 filter 함수 (0) | 2022.12.28 |
[Python] 누적합계를 구하는 reduce 함수 (0) | 2022.12.28 |
[Python] 문자열 타입의 리스트를 정수형으로 변환하기 (0) | 2022.12.28 |
Comments