Python의 itertools 모듈 활용 가이드
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
개발 툴
대상자
- 대상자: Python 개발자, 데이터 처리 및 이터레이터 작업에 관심 있는 프로그래머
- 난이도: 중급 (이터레이터 개념 이해 필요)
핵심 요약
accumulate()
: 이터레이터의 요소를 누적하여 결과를 생성하는 함수.func
파라미터로 연산자 지정 가능,initial
값으로 초기값 설정 가능.batched()
: 이터레이블을 지정된 크기의 배치로 그룹화.strict=True
로 불완전한 배치 시 예외 발생.chain()
및chain.from_iterable()
: 여러 이터레이터를 순차적으로 연결하거나, 단일 이터레이블의 요소를 순차적으로 이터레이션.
섹션별 세부 요약
1. `accumulate()` 함수
- 기능: 이터레이터의 요소를 누적한 결과를 생성.
- 예시:
- accumulate([1,2,3], func=add)
→ [1, 3, 6]
- initial=10
사용 시 [10, 11, 13, 16, 20]
- 파라미터:
iterable
,func
(기본값None
),initial
(기본값None
)
2. `batched()` 함수
- 기능: 이터레이블을 지정된 개수(
n
)로 배치. - 예시:
- batched('ABCDEFGH', n=3)
→ ('A','B','C'), ('D','E','F'), ('G','H')
- strict=True
사용 시 마지막 배치가 불완전하면 ValueError
발생.
- 파라미터:
iterable
,n
(1 이상),strict
(기본값False
)
3. `chain()` 및 `chain.from_iterable()`
- 기능:
- chain(*iterables)
: 여러 이터레이터를 연결.
- chain.from_iterable(iterable)
: 단일 이터레이블의 요소를 순차적으로 이터레이션.
- 예시:
- chain('ABC', 'DE')
→ 'A','B','C','D','E'
- chain.from_iterable(['A','B','C'])
→ 'A','B','C'
결론
- 실무 팁:
itertools
는 이터레이터 기반의 효율적인 데이터 처리에 적합하며,more-itertools
라이브러리 설치(pip install more-itertools
)로 추가 기능 활용 가능. - 핵심:
accumulate()
는 누적 계산에,batched()
는 배치 처리에,chain()
은 이터레이터 연결에 각각 적합.