[Python] 4_Iterator

dev.soo·2020년 8월 25일
0

Python

목록 보기
3/6
post-thumbnail

(n) Iteration : the repetition of a process or utterance
iterable : iter 함수의 argument로 사용할 수 있는 객체 (list, tuple, str, set, dictionary, range 등)
iterator : next 및 iter 함수의 argument 로 사용할 수 있는 객체

iter 함수는 iterable 을 argument 로 갖고, iterator 를 return 한다.
next 함수는 iterator 를 argument 로 갖고, next item 을 return 한다.

# Step 1
# iterable 인 set set_a 가 있다.

set_a = {"가", "나", "다"}


# Step 2
# iter () 함수의 의 argument 로 set 을 전달한다.  

iter_set = iter(set_a) 

# Step 3
# iter() 함수를 통해 iter_set 은 Iterator 인 객체가 되었다. 
# Iterator 에 next 함수를 사용해 보자. 

print(next(iter_set)) # "가"
print(next(iter_set)) # "나"
print(next(iter_set)) # "다"
print(next(iter_set)) # StopIteration

Next 함수의 기본값

next() 함수는 기본값을 지정하여 반복이 끝나더라도 "StopIteration"이 발생하지 않고 기본값을 출력하기도 한다.

it = iter(range(3,16,3))

print(next(it, "끝")) #3
print(next(it, "끝")) #6
print(next(it, "끝")) #9
print(next(it, "끝")) #12
print(next(it, "끝")) #15
print(next(it, "끝")) #끝

Dictionary 에 __iter__() Method 를 사용한 간단한 예시

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

iterable 인 dictionary 를 iterator로 바꾸어 for 문을 사용하게끔 바꾸었다.

D = {'a' : 1, 'b':2, 'c':3}
key = iter(D)

while True:
    try:
        N = next(D)
    except StopIteration:
        break
    else:
        print(N)

0개의 댓글