본문 바로가기
wecode/TIL 정리

위코드 Pre Course - 파이썬의 Iterator

by 왕거 2020. 7. 24.

Iterator 개념은 파이썬 고유의 개념이 아닌 객체 지향 프로그래밍 언어에는 대부분 포함되는 개념으로 보인다.

 

Iterator

  • 반복자 라고 부르며, 객체 지향 언어에서 배열과 비슷한 자료 구조의 내부 요소를 순회하는 객체를 말함
  • 파이썬에서 해당 객체를 사용할 수 있는 자료형은 String, Tuple, Set, List, Dictionary에서 사용 가능
    • dir(객체) 결과로 나오는 리스트에 __iter__이 포함된다면 반복자 객체를 사용할 수 있다

 

반복문을 사용한 방법과 반복자를 사용한 방법의 비교

# 각 방식을 비교

L = [1, 2, 3]
for x in L:
	print(x ** 2, end=' ')	#리스트 L의 값을 제곱해서 출력

I = iter(L)
while True:
    try:
        X = next(I)		#iterator 객체에서 사용가능한 다음 값으로 움직이기 위한 메소드
    except StopIteration:
        break
    print( X**2, end=" ")	#리스트 L의 값을 제곱해서 출력
    
################################################
# 실행 결과
1 4 9
1 4 9

 

Assignment

# 아래의 코드와 같은 동작을 수행하는 로직은 반복자를 사용해서 만들기
#D = {'a':1, 'b':2, 'c':3}
#for key in D.keys():
#    print(key)				# 딕셔너리 D의 키를 출력

I = iter(D)
while True:
    try:
        X = next(I)
    except StopIteration:
        break
    print(X)
    
######################################
# 실행 결과
a
b
c