Python
Python 이터러블(iterable)과 반복자(iterator)
Bithub
2024. 3. 27. 15:08
728x90
이터러블 오브젝트(Iterable Object)란, 순회 가능한 객체를 뜻하며, 반복자(iterator)를 꺼낼 수 있다.
리스트, 튜플, 문자열 등 모두 반복 가능한 객체(iterable object)다.
반복자(iterator)는 이터러블 오브젝트의 모든 요소를 차례대로 순회할 때 사용되는 객체다.
반복자는 iter() 함수를 통해 생성할 수 있다.
numbers = "0123456789" # 문자열 컨테이너
itr = iter(numbers)
print(itr)
>> <str_iterator object at 0x00000237A912FFD0>
String 반복자가 생성된 것을 볼 수 있다.
컨테이너를 순회하기 위해서는 next() 함수를 사용하면 된다.
print(next(itr))
print(next(itr))
print(next(itr))
print(next(itr))
>> 0
>> 1
>> 2
>> 3
0123456789가 순차적으로 접근되는 것을 볼 수 있다.
더 이상 순회할 데이터가 없을 경우 StopIteration이라는 예외가 발생한다.
예외 대신 특정 값을 반환하고 싶다면 해당 값을 next 함수의 두번째 인자로 넣어주면 된다.
print(next(itr, "end of iteration"))
위 예제는 더이상 순회할 값이 없을 때 "end of iteration"을 반환하도록 했지만
관례적으로는 None을 많이 사용한다.
print(next(itr, None))