Python의 itertools 모듈 활용 가이드

카테고리

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

서브카테고리

개발 툴

대상자

  • Python 개발자 (중급 이상)
  • 반복자(iterable) 처리 및 데이터 전처리 기술을 필요로 하는 분야
  • 난이도: 중급 (기본적인 Python 문법과 iterator 개념 이해 필요)

핵심 요약

  • groupby()key 기준으로 iterable 요소를 그룹화하여 (key, group) 형식의 이터레이터를 반환 (from itertools import groupby).
  • islice()start, stop, step 인자를 통해 정렬된 하위 집합을 추출 (예: islice(iterable, start, stop, step)).
  • groupby()islice()데이터 집합의 구조화 및 필터링에 유용한 핵심 함수.

섹션별 세부 요약

1. `groupby()` 함수

  • 기능: iterable 요소를 key 기준으로 그룹화.
  • 인자:
  • iterable (필수): 처리할 데이터 집합.
  • key (선택): None일 경우 요소 자체를 키로 사용.
  • 예시:

```python

from itertools import groupby

for key, group in groupby(['AB', 'CDE', 'FG', 'H', 'IJK'], key=len):

print(key, list(group)) # 2: ['AB', 'FG'], 3: ['CDE', 'IJK'], 1: ['H']

```

  • 주의사항: 동일한 key 그룹 내 요소는 연속적으로 배치되어야 정확한 그룹화 수행.

2. `islice()` 함수

  • 기능: iterable에서 특정 범위의 요소를 추출.
  • 인자:
  • start: 시작 인덱스 (0 이상, None일 경우 0).
  • stop: 종료 인덱스 (0 이상, None일 경우 끝까지).
  • step: 단계 (1 이상, None일 경우 1).
  • 예시:

```python

from itertools import islice

for x in islice([-4, -3, -2, -1, 0, 1, 2, 3, 4], 3, 7): # -2, -1, 0, 1

print(x)

```

  • 특징: 대규모 데이터 처리 시 메모리 효율적 (이터레이터 기반).

결론

  • groupby()데이터 구조화 및 분류에 적합 (예: key=len 활용).
  • islice()대규모 데이터의 효율적 필터링에 유리 (예: step=2로 간격 추출).
  • 실무 팁: groupby() 사용 시 동일한 key의 요소가 연속적으로 배치되어야 정확한 결과 도출.