본문 바로가기
⌨️ Algorithm/Python

[Python] itertools 라이브러리

by Lucy Oh 2023. 1. 19.

공식문서 참고하기:

https://docs.python.org/ko/3/library/itertools.html#itertools.combinations

 

itertools — Functions creating iterators for efficient looping

This module implements a number of iterator building blocks inspired by constructs from APL, Haskell, and SML. Each has been recast in a form suitable for Python. The module standardizes a core set...

docs.python.org

 


itertools

효율적인 루핑을 위한 이터레이터를 만드는 함수

 

무한 이터레이터

  • count(): 숫자 start로 시작하여 균등 간격의 값을 반환하는 이터레이터를 생성함.
  • cycle(): iterable에서 요소를 반환하고 각 사본을 저장하는 이터레이터를 만듦. iterable이 소진되면, 저장된 사본에서 요소를 반환하는 것을 무한히 반복함.
  • repeat(): 반복해서 객체를 반환하는 이터레이터를 생성함. times(시간)이 지정되지 않으면 끝없이 실행됨.
이터레이터 결과 ex)
itertools.count(start, step) start, start+step, start+2*step, ... count(10) --> 10 11 12 13 14 ...
itertools.cycle(iterable) p0, p1, … plast, p0, p1, … cycle('ABCD') --> A B C D A B C D ...
itertools.repeat(object[times]) elem, elem, elem, … 끝없이 또는 최대 times번 repeat(10, 3) --> 10 10 10

 


조합형 이터레이터

  • product()
  • permutations()
  • combinations()
  • combinations_with_replacement()
이터레이터 설명
itertools.product(*iterablesrepeat=1) 여러 iterable의 데카르트 곱을 반환함
itertools.permutations(iterabler=None) iterable에서 원소 개수가 r개인 순열 뽑기
itertools.combinations(iterabler) iterable에서 원소 개수가 r개인 조합 뽑기
itertools.combinations_with_replacement(iterabler) iterable에서 원소 개수가 r개인 중복 조합 뽑기

 

결과
product('ABCD', repeat=2) AA AB AC AD BA BB BC BD CA CB CC CD DA DB DC DD
permutations('ABCD', 2) AB AC AD BA BC BD CA CB CD DA DB DC
combinations('ABCD', 2) AB AC AD BC BD CD
combinations_with_replacement('ABCD', 2) AA AB AC AD BB BC BD CC CD DD

 

댓글