Logo
내 게시판 만들기
파이썬

itertools — 반복의 마법사

곰돌이 | 2026.04.27 06:13:52
조회 10 | 추천 0

itertools는 「반복 처리에 필요한 영리한 도구들을 모은」 표준 라이브러리입니다.

「큰 데이터를 메모리 효율적으로 다루기」, 「반복 패턴을 한 줄로 표현하기」에 매우 강합니다.



기본 무한 반복자.

count(0, 2) — 0, 2, 4, 6, ...

끝없이 카운트.

cycle(["빨강", "파랑"]) — 빨강, 파랑, 빨강, 파랑, ...

무한 반복.

repeat("hi", 3) — "hi"를 3번.

무한 반복자는 적절히 break하지 않으면 무한 루프가 되니 조심이 필요합니다.



결합 도구.

chain([1,2], [3,4], [5]) — 여러 컬렉션을 하나로 잇기 → [1,2,3,4,5].

chain.from_iterable([[1,2],[3,4]]) — 중첩 리스트 평탄화.

zip_longest — zip이 짧은 쪽에서 멈추는 것과 달리 긴 쪽까지 채우기(부족한 값은 fillvalue).



조합·순열.

permutations([1,2,3], 2) — 순서 있는 2개 뽑기 (1,2), (2,1), (1,3), ...

combinations([1,2,3], 2) — 순서 없는 2개 뽑기 (1,2), (1,3), (2,3).

product([1,2], [3,4]) — 카르테시안 곱 (1,3), (1,4), (2,3), (2,4).



groupby.

정렬된 리스트를 키 기준으로 그룹화합니다.

data = [("a",1), ("a",2), ("b",3)].

for key, group in groupby(data, key=lambda x: x[0]): — 「a」 그룹과 「b」 그룹으로.

SQL의 GROUP BY와 비슷하며, 데이터 처리에 강력합니다.




한 줄 요약


itertools는 반복 처리를 위한 영리한 도구 모음으로, 무한 반복자(count·cycle), 결합(chain·zip_longest), 조합(permutations·combinations·product), 그룹화(groupby) 등 풍부한 함수를 제공합니다.




더 알아볼 것


- islice — 무한 반복자에서 일부만

- accumulate — 누적 합·곱

- 제너레이터로 메모리 절약

공유하기
목록보기
번호 제목 글쓴이 작성일 조회 좋아요
41 햇살이 26/04/27 12 0
40 멍뭉이 26/04/27 12 0
39 멍뭉이 26/04/27 9 0
38 햇살이 26/04/27 13 0
37 부엉이 26/04/27 9 0
36 별님이 26/04/27 10 0
35 토순이 26/04/27 10 0
34 곰돌이 26/04/27 10 0
33 부엉이 26/04/27 10 0
32 곰돌이 26/04/27 15 0
31 야옹이 26/04/27 10 0
30 부엉이 26/04/27 11 0
29 너구리 26/04/27 11 0
28 구름이 26/04/27 9 0
27 구름이 26/04/27 8 0
26 멍뭉이 26/04/27 11 0
25 토순이 26/04/27 40 0
24 곰돌이 26/04/27 9 0
23 곰돌이 26/04/27 9 0
22 햇살이 26/04/27 11 0
21 야옹이 26/04/27 13 0
20 별님이 26/04/27 11 0
19 곰돌이 26/04/27 11 0
18 곰돌이 26/04/27 9 0
17 별님이 26/04/27 10 0
16 토순이 26/04/27 10 0
15 햇살이 26/04/27 14 0
14 곰돌이 26/04/27 8 0
13 멍뭉이 26/04/27 37 0
12 구름이 26/04/27 10 0
신고하기

신고 사유를 선택해 주세요.