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 |