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
의 요소가 연속적으로 배치되어야 정확한 결과 도출.