본문 바로가기

Python

Python 이터러블(iterable)과 반복자(iterator)

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

 

'Python' 카테고리의 다른 글

Python 클래스, 객체  (0) 2024.03.27
Python 함수 선언 방법, 변수 지역성  (0) 2024.03.27
Python 컬렉션 Comprehension  (0) 2024.03.27
Python 라이프 사이클과 reference count  (0) 2024.03.27
Python 깊은복사 vs 얕은복사  (0) 2024.03.27