반응형
itertools는 파이썬에서 반복되는 데이터를 처리하는 기능을 포함하고 있는 라이브러리이다. 제공하는 클래스는 매우 다양하지만 코딩 테스트에서 유용하게 사용할 수 있는 클래스들을 정리해 볼 것이다.
permutations
permutations는 리스트와 같은 iterable 객체에서 r개의 데이터를 뽑아 일렬로 나열하는 모든 경우(순열)를 계산해준다.
permutations는 클래스이므로 객체 초기화 이후에는 리스트 자료형으로 변환하여 사용한다. 리스트 ['A', 'B', 'C']에서 3개를 뽑아 나열하는 모든 경우를 출력하는 예시는 다음과 같다.
from itertools import permutations
data = ['A', 'B', 'C']
result = list(permutations(data, 3))
print(result)
combinations
combinations는 iterable 객체에서 r개의 데이터를 뽑아 순서 없이 나열하는 모든 경우(조합)을 계산해준다.
combinations는 클래스이므로 객체 초기화 이후에는 리스트 자료형으로 변환하여 사용한다. 리스트 ['A', 'B', 'C']에서 2개를 뽑아 순서에 상관없이 나열하는 모든 경우를 출력하는 예시는 다음과 같다.
from itertools import combinations
data = ['A', 'B', 'C']
result = list(combinations(data, 2))
print(result)
product
product는 iterable 객체에서 중복을 허용하여 r개의 데이터를 뽑아 일렬로 나열하는 모든 경우(중복 순열)를 계산해준다.
product는 클래스이므로 객체 초기화 이후에는 리스트 자료형으로 변환하여 사용한다. 리스트 ['A', 'B', 'C']에서 중복을 허용하여 2개를 뽑아 나열하는 모든 경우를 출력하는 예시는 다음과 같다.
from itertools import product
data = ['A', 'B', 'C']
result = list(product(data, repeat = 2))
print(result)
product 클래스만 유일하게 두 번째 인자로 repeat 속성을 넣어주어야 한다.
combinations_with_replacement
combinations_with_replacement는 iterable 객체에서 중복을 허용하여 r개의 데이터를 뽑아 순서 없이 나열하는 모든 경우(중복 조합)을 계산해준다.
combinations_with_replacement는 클래스이므로 객체 초기화 이후에는 리스트 자료형으로 변환하여 사용한다. 리스트 ['A', 'B', 'C']에서 중복을 허용하여 2개를 뽑아 순서 없이 나열하는 모든 경우를 출력하는 예시는 다음과 같다.
from itertools import combinations_with_replacement
data = ['A', 'B', 'C']
result = list(combinations_with_replacement(data, 2))
print(result)
참고자료: 이것이 취업을 위한 코딩 테스트다 with 파이썬 - 나동빈 지음(한빛미디어)
반응형
'Python > 파이썬 라이브러리' 카테고리의 다른 글
[파이썬 라이브러리] Numpy (0) | 2022.10.22 |
---|---|
[파이썬 라이브러리] bisect (0) | 2022.02.02 |
[파이썬 라이브러리] collections (0) | 2022.01.28 |
[파이썬 라이브러리] math (0) | 2021.12.30 |
[파이썬 라이브러리] 내장 함수 (0) | 2021.12.29 |