스크립트/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