itertools

BaeBae·2022년 3월 31일
0

파이썬 기초

목록 보기
14/21
post-thumbnail

< itertools란? >

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

< permutations >

  • iterable 객체에서 r 개의 데이터를 뽑아 일렬로 나열하는 모든 경우(순열)를 계산
  • 클래스이므로 객체 초기화 이후에는 리스트 자료형으로 변환하여 사용
from itertools import permutations

data = ['A', 'B', 'C']
result = list(permutations(data, 3))

print(result)

< combinations >

  • iterable 객체에서 r개의 데이터를 뽑아 순서를 고려하지 않고 나열하는 모든 경우(조합) 출력
  • 순서를 고려하지 않기 때문에 (a, b)와 (b, a)는 같은 것으로 봄
# 리스트 ['A', 'B', 'C']에서 2개를 뽑아 나열하는 모든 경우의 수 출력 예시
from itertools import combinations

data = ['A', 'B', 'C']
result = list(combinations(data, 2))

print(result)

< product >

  • permutations와 같이 iterable 객체에서 r개의 데이터를 뽑아 일렬로 나열하는 모든 경우 출력
  • 다만 원소를 중복해서 뽑음
  • product 객체를 초기화할 때는 뽑고자 하는 데이터의 수를 repeat 속성값으로 넣어줌
  • 클래스이므로 객체 초기화 이후에는 리스트 자료형으로 변환하여 사용
# 리스트 ['A', 'B', 'C']에서 중복 포함 2개를 뽑아 나열하는 모든 경우의 수 출력 예시
from itertools import product

data = ['A', 'B', 'C']
result = list(product(data, repeat = 2))

print(result)

< combination_with_replacment >

  • combinations와 같이 iterable 객체에서 r개의 데이터를 뽑아 순서를 고려하지 않고 나열하는 모든 경우 출력
  • 다만 원소를 중복해서 뽑음
  • 클래스이므로 객체 초기화 이후에는 리스트 자료형으로 변환하여 사용
# 리스트 ['A', 'B', 'C']에서 중복 포함 2개를 뽑아 순서 없이 나열하는 모든 경우의 수 출력 예시
from itertools import combinations_with_replacement

data = ['A', 'B', 'C']
result = list(combinations_with_replacement(data, 2))

print(result)

profile
Data가 좋은 Web 개발자

0개의 댓글