itertools 모듈
학습 목표
product,permutations,combinations로 조합을 생성할 수 있다chain,zip_longest,islice로 이터러블을 결합/분할할 수 있다groupby로 데이터를 그룹핑할 수 있다- 메모리 효율적인 반복 패턴을 이해한다
왜 중요한가
itertools는 메모리 효율적인 반복 도구를 제공합니다. 모든 조합을 리스트로 생성하는 대신, 필요할 때 하나씩 생성(Lazy Evaluation)하므로 대용량 데이터에서도 메모리를 절약합니다. ML에서 하이퍼파라미터 그리드 탐색, 데이터 조합, 배치 처리 등에 활용됩니다.
조합 생성
product - 카테시안 곱
permutations - 순열
combinations - 조합
이터러블 결합과 분할
chain - 여러 이터러블 연결
zip_longest
islice - 이터러블 슬라이싱
그룹핑과 필터링
groupby
accumulate
AI/ML에서의 활용
itertools와 리스트 컴프리헨션의 차이는 무엇인가요?
itertools와 리스트 컴프리헨션의 차이는 무엇인가요?
리스트 컴프리헨션은 모든 결과를 메모리에 저장합니다. itertools는 지연 평가로 하나씩 생성하므로 대용량 데이터에서 메모리를 절약합니다. 결과 전체가 필요하면 리스트 컴프리헨션, 순회만 필요하면 itertools가 적합합니다.
repeat, count, cycle은 무엇인가요?
repeat, count, cycle은 무엇인가요?
무한 이터레이터입니다.
count(10): 10부터 무한 증가, cycle([1,2,3]): 무한 반복, repeat("x", 5): “x”를 5번 반복. 반드시 islice나 조건으로 제한해서 사용하세요.체크리스트
-
product,permutations,combinations의 차이를 설명할 수 있다 -
chain으로 여러 이터러블을 연결할 수 있다 -
groupby사용 전 정렬이 필요한 이유를 이해한다 - 메모리 효율적인 반복 패턴의 이점을 설명할 수 있다

