728x90
permutations과 combinations은 itertools 모듈에서 제공하는 함수로서, 주어진 요소들로 가능한 순열과 조합을 생성해주는 기능을 제공합니다.
1. permutations:
- permutations(iterable, r=None) 함수는 주어진 iterable에서 요소들의 순열을 생성합니다.
- 순열은 요소들의 순서를 바꿔서 생성하는 것을 의미합니다. 따라서 순서가 다른 경우에는 다른 순열로 취급됩니다.
- r 매개변수를 사용하여 생성할 순열의 길이를 지정할 수 있습니다. 기본값은 None으로, iterable의 모든 요소들로 가능한 모든 순열을 생성합니다.
- 반환값은 순열을 나타내는 튜플들로 이루어진 이터레이터입니다.
2. combinations:
- combinations(iterable, r) 함수는 주어진 iterable에서 요소들의 조합을 생성합니다.
- 조합은 요소들의 순서는 고려하지 않고, 주어진 개수(r)만큼의 요소들로 구성된 집합을 의미합니다.
- 반환값은 조합을 나타내는 튜플들로 이루어진 이터레이터입니다.
- r 매개변수는 반드시 지정해야 하며, 생성할 조합의 길이를 나타냅니다.
예시를 통해 각각의 동작을 살펴보겠습니다.
import itertools
# permutations 예시
my_list = ['A', 'B', 'C']
permutations = itertools.permutations(my_list, 2)
for perm in permutations:
print(perm)
# 출력:
# ('A', 'B')
# ('A', 'C')
# ('B', 'A')
# ('B', 'C')
# ('C', 'A')
# ('C', 'B')
# combinations 예시
my_list = ['A', 'B', 'C']
combinations = itertools.combinations(my_list, 2)
for comb in combinations:
print(comb)
# 출력:
# ('A', 'B')
# ('A', 'C')
# ('B', 'C')
위의 예시에서 permutations 함수는 주어진 리스트에서 2개의 요소로 만들 수 있는 모든 순열을 생성하고, combinations 함수는 주어진 리스트에서 2개의 요소로 만들 수 있는 모든 조합을 생성합니다.
중복 없는 모든 가능한 조합을 얻기 위한 예제 코드입니다.
import itertools
my_list = ['A', 'B', 'C']
all_combinations = []
# 가능한 모든 조합 얻기
for r in range(1, len(my_list) + 1):
combinations = itertools.combinations(my_list, r)
all_combinations.extend(combinations)
# 결과 출력
for comb in all_combinations:
print(comb)
#출력
#('A',)
#('B',)
#('C',)
#('A', 'B')
#('A', 'C')
#('B', 'C')
#('A', 'B', 'C')
'성장하기 > Python' 카테고리의 다른 글
DFS(Depth-First Search)와 BFS(Breadth-First Search) (0) | 2023.06.15 |
---|---|
set (0) | 2023.06.15 |
소수찾기와 에라토스테네스의 체 (0) | 2023.06.15 |
cycle (0) | 2023.06.15 |
cmp_to_key (0) | 2023.06.14 |