이터레이터를 이용한 커스텀 데이터 순회
이터레이터(Iterator)는 데이터를 순회하고 반복하는 데 사용되는 객체입니다. 파이썬에서는 for문을 통해 컬렉션의 요소를 가져오는 데 많이 사용되지만, 자체적으로 이터레이터를 구현하여 커스텀 데이터를 순회할 수도 있습니다.
이터레이터란?
이터레이터는 __iter__
와 __next__
메서드를 구현한 객체입니다. __iter__
메서드는 현재 객체 자체를 반환하고, __next__
메서드는 다음 요소를 반환합니다. __next__
메서드는 더 이상 요소가 없을 때 StopIteration
예외를 발생시켜야 합니다.
class MyIterator:
def __init__(self, data):
self.data = data
self.index = 0
def __iter__(self):
return self
def __next__(self):
if self.index >= len(self.data):
raise StopIteration
current = self.data[self.index]
self.index += 1
return current
위의 코드는 MyIterator
클래스를 정의하고, data
리스트를 이터레이션하는 간단한 예제입니다. __iter__
메서드는 self
를 반환하고, __next__
메서드는 현재 요소를 반환하고 인덱스를 증가시킵니다. 인덱스가 리스트의 길이를 초과하면 StopIteration
예외가 발생합니다.
커스텀 데이터 순회하기
이제 MyIterator
클래스를 사용하여 커스텀 데이터를 순회해 보겠습니다.
my_data = [1, 2, 3, 4, 5]
my_iterator = MyIterator(my_data)
for item in my_iterator:
print(item)
위의 코드에서는 my_data
리스트를 MyIterator
클래스의 인스턴스인 my_iterator
에 전달합니다. 그리고 for문을 사용하여 my_iterator
를 순회하고 각 요소를 출력합니다.
이렇게 하면 for
문을 통해 기본적인 데이터 구조 외에도 커스텀 데이터를 순회할 수 있습니다.
#python #이터레이터