itertools in Python (4)
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
개발 툴
대상자
- Python 개발자
- 중급 이상의 데이터 처리 및 이터레이터 활용 경험자
- 이터레이터 기반의 효율적인 데이터 처리 방법을 배우고자 하는 사람들
핵심 요약
groupby()
:key
함수를 통해iterable
요소를 그룹화하여 반복자로 반환 (예:groupby(iterable, key=len)
)islice()
:start
,stop
,step
파라미터를 통해iterable
을 슬라이스 (예:islice(iterable, 0, 9, 1)
)- 핵심 특징: 두 함수 모두 이터레이터 기반의 메모리 효율적인 데이터 처리를 지원
섹션별 세부 요약
1. `groupby()` 함수
key
파라미터로 그룹화 기준 정의 (예:key=len
으로 문자열 길이 기준 그룹화)- 반복자로 반환되며,
next()
로 요소 접근 가능 StopIteration
예외 처리 필수 (예:try-except
구문 활용)- 예시:
```python
from itertools import groupby
for key, x in groupby(['AB', 'CDE', 'FG'], key=len):
print(key, next(x)) # 2 AB, 3 CDE, 2 FG
```
2. `islice()` 함수
start
,stop
,step
파라미터로 슬라이싱 가능 (예:islice(range(10), 2, 8, 2)
)None
값 사용 시iterable
의 끝까지 처리step
생략 시 기본값1
적용- 예시:
```python
from itertools import islice
for x in islice([-4, -3, -2, -1, 0, 1, 2, 3, 4], 3, 7):
print(x) # -2, -1, 0, 1
```
결론
groupby()
: 동일한key
값을 가진 요소를 그룹화하여 데이터 정리에 유리islice()
: 대규모 데이터의 부분 집합 처리 시 메모리 효율성 확보- 실무 팁: 이터레이터를 직접 조작할 때는
next()
와StopIteration
예외 처리를 반드시 포함하여 안정성을 확보하세요.