Iterators

Junyoung Kim·2022년 1월 5일
0

Python+

목록 보기
2/7

이터레이터는 값을 순차적으로 꺼내올 수 있는 객체다.
함수로는 __iter__로 표현하며 dir()를 통해 __iter__ 함수를 검색한 뒤 해당 객체가 반복 가능한지 확인이 가능 하다.
이터레이터를 변수에 저장한 후에 __next__함수를 호출하면 for문이 동작하는 것 처럼 값을 하나씩 꺼내올 수 있다. __next__ 함수는 다음 요소를 하나씩 꺼내오는 함수다.

L = [1, 2, 3]
iterator_L = L.__iter__()
print(iterator_L.__next__())
print(iterator_L.__next__())
print(iterator_L.__next__())
print(iterator_L.__next__())


__next__ 함수를 호출한 결과 1,2,3이 출력되고 Stop Iteration이 발생한 것을 확인할 수 있다.

파이썬은 내장 함수로 __iter____next__를 편하게 사용할 수 있게 해주는 iter()next()함수가 존재한다. 다음 코드는 해당 함수를 사용한 코드다.

L = [1,2,3,4]

I = iter(L) # == I = L.__iter__()

while True:
    try:
        X = next(I) # I.__next__()
    except StopIteration:
        break
    print( X**2, end=" ")

실행결과

Assignment

딕셔너리도 반복가능한 객체라서 앞서본 리스트와 같이 __iter__함수와 __next__함수를 사용할 수 있고 파이썬 기본함수인 iter, next 또한 사용할 수 있습니다. 다음의 간단한 키를 출력하는 딕셔너리에 대한 for 문을 while문으로 구현해 보세요.

D = {'a':1, 'b':2, 'c':3}
for key in D.keys():
    print(key)

구현 코드

0개의 댓글