기본 패턴
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를 구분해 두는 것이 중요합니다.