Python의 itertools 모듈 이해하기

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

개발 툴

대상자

  • Python 개발자 (중간 수준)
  • 반복자(Iterator) 및 시퀀스 처리 효율성 향상을 위한 기술적 지식 필요
  • 리스트, 튜플, 문자열과 같은 반복 가능한 데이터 구조를 다루는 개발자에게 유용

핵심 요약

  • count(): startstep 매개변수를 통해 무한히 수를 생성 (예: count(start=0, step=1))
  • cycle(): 주어진 iterable을 무한히 반복 (예: cycle('ABC') → 'A', 'B', 'C' 반복)
  • repeat(): objecttimes만큼 반복 (예: repeat('Hello', times=3) → 'Hello' 3회 반복)

섹션별 세부 요약

1. `count()` 함수

  • 매개변수: start(기본값 0)과 step(기본값 1)
  • 예시: count(start=-5, step=3) → -5, -2, 1, 4, 7, 10...
  • 데이터 타입: int, float, complex, bool 지원
  • 중단 조건: for 루프에서 x == 5 시 반복 중단

2. `cycle()` 함수

  • 매개변수: iterable(필수)
  • 기능: 'ABC'와 같은 입력을 무한히 순환 (예: A → B → C → A → B → C...)
  • 중단 조건: count 변수로 반복 횟수 제어 (예: 8회 반복 시 중단)

3. `repeat()` 함수

  • 매개변수: object(필수), times(선택, 기본값 무한)
  • 기능: times 설정 시 제한된 반복 (예: repeat('Hello', 3) → 3회 'Hello' 출력)
  • 예외 처리: times 없이 사용 시 StopIteration 발생

결론

  • 무한 시퀀스 생성(count())이나 반복 요소 처리(cycle(), repeat())에 itertools 모듈을 활용
  • 추가 기능 필요 시 pip install more-itertools로 확장 가능
  • 실무 예시: 데이터 생성, 테스트 케이스 반복, 무한 스크롤 처리 등에 활용 가능