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))