[Python] itertool 라이브러리 (순열과 조합)

Gi Woon Lee·2024년 10월 3일
0

TIL

목록 보기
70/78

개념(순열과 조합)

permutation VS combination

box = [a, b, c]

  • permutation(순열)

    • 순서가 의미를 가진다.
    • box의 순열 = ab, ba, ac, ca, bc, cb
  • combination(조합)

    • 조합만 의미를 가진다.
    • box의 조합 = ab, ac, bc

python 활용

  • python
    • itertools.combination
    • itertools.permutation

"이터레이터"는 바로 볼 수 없다?"

  • itertool은 "이터레이터"를 반환하기 때문에 모든 값을 메모리에 저장하지 않고 필요할 때 값을 저장한다.
  • 따라서 이터레이터의 값을 확인하기 위해서는 밑에 두 방법을 사용해야 한다.
    1. 리스트 변환 후 출력
    2. 반복문을 사용해서 출력

itertools.combinations

  • 문법: combinations(iterable, r)

    • iterable: 입력 리스트, 문자열 등 반복 가능한 객체
    • r: 선택할 원소의 개수
  • 특징:

    • 중복을 허용하지 않고, 순서가 중요하지 않음.
    • 반환된 각 조합은 튜플 형태입니다.
from itertools import combinations

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

print(list(result))  # 출력: [('A', 'B'), ('A', 'C'), ('B', 'C')]

itertools.permutation

  • 문법: permutations(iterable, r=None)

    • iterable: 입력 리스트, 문자열 등 반복 가능한 객체
    • r: 선택할 원소의 개수. 기본값은 None으로, 이 경우 iterable의 길이와 동일하게 선택합니다.
  • 특징:

    • 순서가 중요하고, 중복을 허용하지 않음.
    • 반환된 각 순열은 튜플 형태입니다
from itertools import permutations

a = ['A', 'B', 'C']
result = permutations(a, 2)

print(list(result))  # 출력: [('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B')]

0개의 댓글