# 리스트를 생성하는 경우 한 번에 생성을 완료하고 그 안에서 하나씩 순회하면서 처리할 수 있다.
l = range(1, 4)
for n in l:
print(n)
결과)
1
2
3
# 이터레이터 객체를 생성해서 __next__() 메쏘드를 부르면 컨테이너를 하나씩 만들고 처리할 수 있다.
n = range(1, 4)
it = iter(n)
print(it.__next__())
print(it.__next__())
print(it.__next__())
결과)
1
2
3
# 객체의 내부 메쏘드를 호출하지 않고 next() 외장함수를 사용할 수도 있다.
n = range(1, 4)
it = iter(n)
print(next(it))
print(next(it))
print(next(it))
결과)
1
2
3
# 존재하지 않는 시퀀스 객체를 호출하려고 하면 StopIteration 에러가 발생한다.
n = range(1, 2)
it = iter(n)
print(next(it))
print(next(it))
결과)
...
StopIteration
# for - in 구문과 함께 사용
n = range(1, 3)
it = iter(n)
for i in it:
print(i)
결과)
1
2
댓글 영역