1. 이터레이터란?
이터레이터는 파이썬에서 반복 가능한 객체를 다루는 데 사용되는 개념입니다. 이터레이터를 사용하면 반복 가능한 객체의 요소에 순차적으로 접근할 수 있습니다. 이터레이터는 'next()' 메서드를 통해 다음 요소로 이동하고, 요소가 없을 때 'StopIteration' 예외를 발생시킵니다.
2. 이터레이터 사용법
파이썬에서 이터레이터를 사용하는 방법은 간단합니다. 우선, 반복 가능한 객체를 생성한 후 'iter()' 함수를 사용하여 이터레이터 객체를 만듭니다. 그리고 'next()' 함수를 호출하여 이터레이터 객체의 다음 요소에 접근합니다.
# 리스트를 이터레이터로 변환
my_list = [1, 2, 3, 4, 5]
my_iterator = iter(my_list)
# 이터레이터의 다음 요소에 접근
print(next(my_iterator)) # 1
print(next(my_iterator)) # 2
print(next(my_iterator)) # 3
3. 이터레이터의 장점
이터레이터는 다양한 장점을 가지고 있습니다. 첫째, 메모리를 효율적으로 사용할 수 있습니다. 이터레이터는 한 번에 하나의 요소만을 메모리에 유지하므로 대용량 데이터를 처리할 때 유용합니다. 둘째, 이터레이터는 지연 평가(lazy evaluation)를 지원합니다. 이는 필요한 요소만을 생성하므로 계산 비용이 큰 작업을 수행할 때 효율적입니다. 셋째, 이터레이터는 함수형 프로그래밍을 지원하며, 함수를 인자로 받는 많은 내장 함수와 함께 사용할 수 있습니다.
4. 이터레이터의 예제
이터레이터를 사용하여 다양한 예제를 살펴보겠습니다.
4.1. 숫자 이터레이터
숫자 이터레이터는 시작 숫자부터 지정된 범위까지의 숫자를 생성하는 예제입니다.
class NumberIterator:
def __init__(self, start, end):
self.start = start
self.end = end
def __iter__(self):
return self
def __next__(self):
if self.start > self.end:
raise StopIteration
else:
num = self.start
self.start += 1
return num
# 숫자 이터레이터 사용 예제
my_iterator = NumberIterator(1, 5)
for num in my_iterator:
print(num)
4.2. 파일 이터레이터
파일 이터레이터는 파일의 각 줄을 순차적으로 읽어오는 예제입니다.
class FileIterator:
def __init__(self, file_name):
self.file_name = file_name
self.file = open(file_name, 'r')
def __iter__(self):
return self
def __next__(self):
line = self.file.readline()
if line == '':
self.file.close()
raise StopIteration
else:
return line.strip()
# 파일 이터레이터 사용 예제
my_iterator = FileIterator('data.txt')
for line in my_iterator:
print(line)
5. 결론
이터레이터는 파이썬에서 반복 가능한 객체를 다루는 강력한 도구입니다. 이터레이터를 사용하면 메모리를 효율적으로 사용하고, 지연 평가를 통해 계산 비용을 줄일 수 있습니다. 또한, 이터레이터는 함수형 프로그래밍과 함께 사용할 수 있어 더욱 유연한 프로그래밍을 가능하게 합니다. 이제 이터레이터의 사용법과 예제에 대해 자세히 알게 되었으니, 다양한 상황에서 이터레이터를 적절히 활용해 보세요.
댓글