스크립트/Python
iterable 객체와 iterator 객체
겨울섬
2021. 3. 14. 20:59
■ iterable 객체 : iter 함수에 인자로 전달 가능한 객체
ex) 리스트, 튜플, 문자열, 파일 등
'''
hasattr 함수호출을 통해 __iter__함수가 있는지 물어봄으로써 iterable 객체인지 알 수 있다
'''
hasattr([1, 2, 3], '__iter__') # True
■ iterator 객체 : iter 함수가 생성해서 반환하는 객체
■ 정리
- iterable 객체를 대상으로 iter 함수를 호출해서 iterator 객체를 만든다
- iterator 객체를 생성할 수 있는 대상이 되는 것이 iterable 객체이다
- iterable 객체와 iterator 객체 모두 for루프의 반복 대상이 될 수 있다
- iterable 객체가 와야 하는 위치에는 iterator 객체가 올 수 있다
■ 예제
ds = [1, 2, 3]
ir = iter(ds) # iterator 객체 얻음
next(ir) # 1
next(ir) # 2
next(ir) # 3
next(ir) # StopIteration 예외 발생
# iterator를 이용한 반복문
ds = [1, 2, 3]
ir = iter(ds)
for i in ir:
print(i, end=' ') # 1 2 3