Python

[Python] 파이썬 이터레이터(Iterator) 사용법과 예제

sécurité de l'information 2023. 9. 27.
[Python] 파이썬 이터레이터(Iterator) 사용법과 예제

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. 결론

이터레이터는 파이썬에서 반복 가능한 객체를 다루는 강력한 도구입니다. 이터레이터를 사용하면 메모리를 효율적으로 사용하고, 지연 평가를 통해 계산 비용을 줄일 수 있습니다. 또한, 이터레이터는 함수형 프로그래밍과 함께 사용할 수 있어 더욱 유연한 프로그래밍을 가능하게 합니다. 이제 이터레이터의 사용법과 예제에 대해 자세히 알게 되었으니, 다양한 상황에서 이터레이터를 적절히 활용해 보세요.

댓글

💲 추천 글