Python/파이썬 라이브러리

[파이썬 라이브러리] itertools

서노리 2021. 12. 30. 02:44
반응형

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 파이썬 - 나동빈 지음(한빛미디어)

반응형