본문 바로가기
프로그래밍언어/파이썬[중급]

[파이썬][중급] Chapter13. itertools 모듈 활용법

by about_IT 2025. 5. 18.
728x90

itertools는 반복 작업을 보다 효율적으로 처리할 수 있게 해주는 파이썬 표준 라이브러리입니다. 조합, 순열, 누적합, 무한 반복 등 다양한 반복자(iterator)를 생성하는 도구들을 제공하여, 복잡한 반복 로직을 간결하게 만들 수 있습니다.


● itertools 모듈이란?

itertools는 반복 가능한 객체를 생성하거나 조작하는 데 특화된 함수들을 모아둔 모듈로, 대부분의 함수들이 이터레이터를 반환하여 메모리 효율이 뛰어납니다.


● 주요 함수 소개

  • count(start=0, step=1): 무한히 증가하는 수열 생성
  • cycle(iterable): iterable을 무한 반복
  • repeat(elem, n): 동일한 요소를 n번 반복
  • accumulate(iterable): 누적합 또는 누적함수 적용
  • product(iter1, iter2): 데카르트 곱
  • permutations(iter, r): r개의 순열
  • combinations(iter, r): r개의 조합
  • groupby(iterable, key): 키 함수를 기준으로 그룹화

● 사용 예제

import itertools

# 1부터 무한 증가하는 수
counter = itertools.count(1, 2)
print(next(counter))  # 1
print(next(counter))  # 3

# 누적합
data = [1, 2, 3, 4]
print(list(itertools.accumulate(data)))  # [1, 3, 6, 10]

# 조합
colors = ['red', 'blue', 'green']
for c in itertools.combinations(colors, 2):
    print(c)

● groupby 예제

from itertools import groupby

data = ['apple', 'apricot', 'banana', 'blueberry', 'cherry']
data.sort(key=lambda x: x[0])  # 첫 글자 기준 정렬

for key, group in groupby(data, key=lambda x: x[0]):
    print(key, list(group))

위 코드는 첫 글자를 기준으로 단어들을 그룹화합니다.


● 마무리

itertools는 반복 구조를 보다 효율적이고 우아하게 구현할 수 있게 해주는 강력한 도구입니다. 반복문을 작성할 때 불필요한 변수 사용이나 중복 로직을 줄이고자 한다면 반드시 활용해보시기 바랍니다.

728x90