[Python] itertools-permutations, product, combinations

Yewon Choi·2020년 10월 6일
0

Python

목록 보기
26/29

itertools

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

  • 가장 유용하게 사용할 수 있는 클래스 : permutations, combinations

permutations : 순열

  • 리스트와 같은 iterable 객체에서 r개의 데이터를 뽑아 일렬로 나열하는 모든 경우(순열)를 계산해줌
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')]

product : 순열

  • permutations과 동일하게 순열이다.
  • 다른점 : 원소를 중복하여 뽑는다.
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 : 조합

  • *리스트와 같은 iterable 객체에서 r개의 데이터를 뽑아 순서를 고려하지 않고 나열하는 모든 경우(조합)를 계산해줌
from itertools import combinations
data = ['A','B','C']
result = list(combinations(data, 2)) # 2개를 뽑는 모든 조합
print(result)
  • 결과
    [('A', 'B'), ('A', 'C'), ('B', 'C')]

combinations_with_replacement : 조합

  • combinations와 동일하게 조합이다.
  • 다른점 : 원소를 중복해서 뽑는다.
from itertools import combinations
data = ['A','B','C']
result = list(combinations((data), 2)) # 2개를 뽑는 모든 조합
print(result)
  • 결과
    [('A', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'B'), ('B', 'C'), ('C', 'C')]
profile
https://github.com/devAon 찰나의 개발흔적을 남기는 개발블로그 입니다 🐥 https://aonee.tistory.com 에서 Velog로 블로그 이전 작업중입니다 ! 🎶

0개의 댓글