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
'프로그래밍언어 > 파이썬[초급]' 카테고리의 다른 글
[파이썬][초급] Chapter39. 모듈과 패키지 (0) | 2025.05.17 |
---|---|
[파이썬][초급] Chapter38. 제너레이터(generator) (0) | 2025.05.17 |
[파이썬][초급] Chapter36. 조건 표현식과 제어 흐름 (0) | 2025.05.17 |
[파이썬][초급] Chapter35. 불 자료형과 None (0) | 2025.05.17 |
[파이썬][초급] Chapter34. 집합 활용 심화 (1) | 2025.05.16 |