반응형
[Python] permutations & combinations (순열과 조합)
itertools
: 파이썬에서 반복되는 데이터를 처리하는 기능을 포함한 라이브러리- 코테에서 유용한 클래스 2가지
permutations(순열)
combinations(조합)
- 코테에서 유용한 클래스 2가지
permutations
예시>>> from itertools import permutations >>> data = ['a', 'b', 'c'] >>> result = list(permutations(data, 3)) >>> print(result) [('a', 'b', 'c'), ('a', 'c', 'b'), ('b', 'a', 'c'), ('b', 'c', 'a'), ('c', 'a', 'b'), ('c', 'b', 'a')]
combinations
예시>>> from itertools import combinations >>> data = ['a', 'b', 'c'] >>> result = list(permutations(data, 2)) >>> print(result) [('a', 'b'), ('a', 'c'), ('b', 'c')]
알아두면 유용한 것들
product
:permutations
와 같이 리스트와 같은iterable
객체에서r
개의 데이터를 뽑아 일렬로 나열하는 모든 경우(순열)를 계산한다. 다만 원소를 중복하여 뽑는다. (repeat
: 뽑고자 하는 데이터의 수)product
예시>>> from itertools import product >>> data = ['a', 'b', 'c'] >>> result = list(product(data, repeat=2)) # 2개를 뽑는 모든 순열 구하기(중복 허용) >>> print(result) [('a', 'a'), ('a', 'b'), ('a', 'c'), ('b', 'a'), ('b', 'b'), ('b', 'c'), ('c', 'a'), ('c', 'b'), ('c', 'c')]
combinations_with_replacement
:combinations
와 같이 리스트와 같은iterable
객체에서r
개의 데이터를 뽑아 순서를 고려하지 않고 나열하는 모든 경우(조합)을 계산한다. 다만 원소를 중복해서 뽑는다.combinations_with_replacement
예시>>> from itertools import combinations_with_replacement >>> data = ['a', 'b', 'c'] >>> reuslt = list(combinations_with_replacement(data, 2)) # 2개를 뽑는 모든 조합 구하기(중복 허용) >>> print(result) [('a', 'a'), ('a', 'b'), ('a', 'c'), ('b', 'b'), ('b', 'c'), ('c', 'c')]
반응형
'프로그래밍 언어 > Python' 카테고리의 다른 글
[Python] bisect (이진 탐색) (0) | 2021.02.04 |
---|---|
[Python] heapq (최소힙, 최대힙) (0) | 2021.02.03 |
[Python] 문자열로 된 수식을 계산하는 eval 함수 (0) | 2021.02.01 |
[Python] 2차원 리스트 90도 회전 (0) | 2021.01.31 |
[Python] sorted() 다중조건으로 정렬하는 방법 (0) | 2021.01.13 |