본문 바로가기
프로그래밍언어/파이썬[초급]

[파이썬][초급] Chapter37. 반복 가능한 객체와 반복자

by about_IT 2025. 5. 17.
728x90

파이썬의 반복문은 리스트, 튜플, 문자열 등 반복 가능한 객체를 대상으로 동작합니다. 이 장에서는 반복 가능한 객체(iterable)와 반복자(iterator)의 개념을 이해하고, for문이 어떻게 작동하는지 내부 구조를 살펴봅니다.

● 반복 가능한 객체란?

리스트, 튜플, 문자열, 딕셔너리 등 for문으로 순회할 수 있는 객체를 말합니다. 이들은 모두 __iter__() 메서드를 가지고 있습니다.

nums = [1, 2, 3]
print(hasattr(nums, '__iter__'))  # True

● 반복자(iterator)란?

반복자는 __next__() 메서드를 가지고 있으며, 반복 가능한 객체에서 iter() 함수를 통해 생성됩니다.

it = iter([1, 2, 3])
print(next(it))  # 1
print(next(it))  # 2

● for문 내부 동작 원리

for문은 내부적으로 iter()로 반복자를 생성하고, next()를 반복 호출하여 순회합니다.

data = [10, 20, 30]
it = iter(data)

while True:
    try:
        print(next(it))
    except StopIteration:
        break

● 사용자 정의 반복자

직접 클래스에 __iter____next__를 구현하여 반복자를 만들 수 있습니다.

class Count:
    def __init__(self, max):
        self.i = 0
        self.max = max

    def __iter__(self):
        return self

    def __next__(self):
        if self.i >= self.max:
            raise StopIteration
        self.i += 1
        return self.i

for num in Count(3):
    print(num)

● 마무리

이번 장에서는 파이썬 반복 구조의 기반이 되는 반복 가능한 객체와 반복자의 개념을 살펴보았습니다. 반복자의 내부 작동 방식은 이해하고 있으면 더욱 효율적인 코드를 작성하는 데 도움이 됩니다. 다음 장에서는 제너레이터(generator)에 대해 학습합니다.

728x90