아이엠 !나이롱맨😎
article thumbnail
반응형

 

itertools는 파이썬에서 반복되는 데이터를 처리하는 기능을 포함하고 있는 라이브러리입니다.

 

그 중 자주 사용되는 4가지 클래스에 대해 알아보겠습니다.

 

알아보기 전 공통으로 알아둘 것이 있습니다.

 

  • itertools는 파이썬 외장 라이브러리 이므로 import 선언을 해주어야합니다. 만약 combinations 클래스가 필요하다면 from itertools import combinations 로 선언해주시면 됩니다.
  • 항상 list() 를 해주어 리스트 객체로 받아야 합니다.
  • combinations 처럼 뒤에 s 가 붙어있는지 확인해주어야합니다. product 경우는 s가 없습니다.
함수 설명 사용법
permutations iterable 객체에서 r개의 데이터를 뽑아 순서대로 나열합니다. permutations(리스트, r개)
combinations iterable 객체에서 r개의 데이터를 뽑아 순서는 고려하지 않고 나열합니다. combinations(리스트, r개)
product iterable 객체에서 r개의 데이터를 뽑아 순서대로 나열하고 중복을 허용합니다. product(리스트, repeat =3개)
combinations_with_replacement iterable 객체에서 r개의 데이터를 뽑아 순서를 고려하지 않고 중복을 허용한 채 나열합니다. combinations_with_replacement(리스트, r개)

 

from itertools import permutations
from itertools import combinations
from itertools import product
from itertools import combinations_with_replacement

data = ['A', 'B', 'C']

print(list(permutations(data, 3)))# 3개 뽑아 순서 고려 && 만약 data 수보다 두번째 인자가 더 크면 빈 리스트 반환
#[('A', 'B', 'C'), ('A', 'C', 'B'), ('B', 'A', 'C'), ('B', 'C', 'A'), ('C', 'A', 'B'), ('C', 'B', 'A')]

print(list(combinations(data, 2)))# 2개 뽑아 순서 고려 안함
#[('A', 'B'), ('A', 'C'), ('B', 'C')]

print(list(product(data, repeat=3)))# 3개 뽑아 순서 고려하고 중복 허용
#데이터가 많아서 직접해보시기 바랍니다.

print(list(combinations_with_replacement(data, 3)))# 3개 뽑아 순서 고려안하고 중복 허용
#[('A', 'A', 'A'), ('A', 'A', 'B'), ('A', 'A', 'C'), ('A', 'B', 'B'), ('A', 'B', 'C'), ('A', 'C', 'C'), ('B', 'B', 'B'), ('B', 'B', 'C'), ('B', 'C', 'C'), ('C', 'C', 'C')]

 

 

 

반응형

article prev thumbnail
article next thumbnail
profile on loading

Loading...