(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() 함수는 기본값을 지정하여 반복이 끝나더라도 "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, "끝")) #끝
__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)