Python고급 주제

iterable과 iterator 기본

`for`문 뒤에서 실제로 무엇이 반복되는지 이해하기 위한 Python iterable과 iterator의 기본 개념입니다.

마지막 수정 2026년 3월 19일

기본 패턴

python
numbers = [10, 20, 30]
it = iter(numbers)

print(next(it))  # 10
print(next(it))  # 20

설명

  • iterable은 반복 가능한 객체이고, iterator는 실제로 다음 값을 하나씩 꺼내는 객체입니다.
  • 리스트, 문자열, 튜플 같은 대부분의 시퀀스는 iterable입니다.
  • iter(obj)는 iterator를 얻고, next(it)는 다음 값을 하나 꺼냅니다.
  • for문은 내부적으로 iter()next()를 반복해 동작한다고 이해하면 좋습니다.

짧은 예제

python
text = "abc"
it = iter(text)

print(next(it))  # a
print(next(it))  # b
print(next(it))  # c

빠른 정리

개념의미
iterable반복 가능한 객체
iterator다음 값을 차례로 꺼내는 객체
iter(x)iterator 생성
next(it)다음 값 하나 반환

공식 참고: Data Structures

주의할 점

iterator는 한 번 앞으로 진행하면 보통 뒤로 돌아가지 않습니다. 따라서 같은 데이터를 여러 번 순회해야 할 때는 iterable과 iterator를 구분해 두는 것이 중요합니다.