SeouliteLab

[Python/파이썬] Iterator와 Iterable의 차이점 본문

프로그래밍

[Python/파이썬] Iterator와 Iterable의 차이점

Seoulite Lab 2024. 3. 5. 08:13

Iterator와 Iterable은 파이썬에서 자주 사용되는 개념으로, 데이터 컬렉션을 반복하는 데 사용됩니다. 이 둘의 차이점을 이해하는 것은 파이썬 프로그래밍에서 중요합니다. 이번에는 Iterator와 Iterable의 차이점에 대해 알아보겠습니다.

Iterable

Iterable은 반복 가능한 객체를 의미합니다. 즉, 이 객체는 반복문(for 루프)에서 직접 사용할 수 있습니다. 대표적인 예로는 리스트, 튜플, 집합, 문자열 등이 있습니다. 이 객체들은 모두 `__iter__()` 메서드를 구현하여 자신을 반복할 수 있도록 합니다.

Iterator

Iterator는 값을 차례대로 반환하는 객체입니다. 이 객체는 반복 가능한 객체(Iterable)로부터 값을 가져오는 역할을 합니다. Iterator는 `__iter__()`와 `__next__()` 메서드를 구현해야 합니다. `__iter__()` 메서드는 Iterator 객체 자신을 반환하고, `__next__()` 메서드는 다음 값을 반환합니다.

Iterator는 Iterable의 일종이지만, 모든 Iterable이 Iterator는 아닙니다. 즉, Iterable은 값을 반복할 수 있는 객체이지만, 그 자체로 값을 반환하는 Iterator는 아닙니다.

예제

예제 1: Iterable

# Iterable 객체 생성
my_list = [1, 2, 3, 4, 5]

# Iterable을 반복하여 출력
for item in my_list:
    print(item)

예제 2: Iterator

# Iterable 객체 생성
my_list = [1, 2, 3, 4, 5]

# Iterator 객체 생성
my_iter = iter(my_list)

# Iterator를 반복하여 출력
print(next(my_iter))  # 1
print(next(my_iter))  # 2
print(next(my_iter))  # 3
print(next(my_iter))  # 4
print(next(my_iter))  # 5