Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 iter() 함수 완벽 정리 – 이터레이터 생성과 next() 활용법

파이썬의 iter() 함수는 반복 가능한(iterable) 객체로부터 이터레이터(iterator) 객체를 생성하는 내장 함수입니다. 생성된 이터레이터 객체를 사용하면 데이터를 하나씩 순차적으로 순회할 수 있습니다. 본문에서는 이터레이터와 이터러블의 개념부터 실제 활용 예제까지 살펴보겠습니다.

이터레이터(Iterator)와 이터러블(Iterable)이란?

이터레이터(Iterator)는 반복 가능한 개수의 값을 담고 있는 객체로, 값을 하나씩 꺼내며 순회할 수 있습니다.

이터러블(Iterable)은 리스트(list), 튜플(tuple), 문자열(string)과 같이 여러 데이터를 모아 놓은 자료형 컬렉션을 의미합니다.

iter() 함수의 문법

iter(object, sentinel)
  • object – 필수 인자입니다. 반복 가능한(iterable) 객체를 지정합니다.
  • sentinel – 선택 인자입니다. object가 호출 가능한(callable) 객체일 경우, 반환된 값이 sentinel과 같아지면 반복이 종료됩니다.

__next__() 메서드란?

이터레이터 객체는 __next__() 메서드를 통해 다음 값을 가져옵니다. 이 메서드가 호출될 때마다 이터레이터 스트림에서 다음 요소가 하나씩 반환됩니다. 모든 요소를 소진한 후에는 StopIteration 예외가 발생하여 반복이 종료됩니다.

예제 1: __next__() 메서드 사용하기

list1 = [10, 20]
valuesL1 = iter(list1)
valuesL1.__next__()
# 10
valuesL1.__next__()
# 20

next() 내장 함수

매번 __next__() 메서드를 직접 호출하는 것은 번거롭습니다. 그래서 파이썬은 내장 함수인 next()를 제공합니다. 이 함수는 이터레이터 객체를 매개변수로 받아, 내부적으로 __next__() 메서드를 자동으로 호출해 줍니다.

따라서 실무에서는 __next__() 대신 간결하게 next()를 사용하는 것이 일반적입니다.

예제 2: next() 함수 사용하기

list1 = [10, 20]
valuesL1 = iter(list1)
next(valuesL1)
# 10
next(valuesL1)
# 20

정리하면, iter()로 이터레이터를 만들고 next()로 값을 하나씩 꺼내는 것이 파이썬 반복 처리의 기본 구조입니다. for문 역시 내부적으로 동일한 방식으로 작동하므로, 이 원리를 이해하면 파이썬의 반복 메커니즘을 더 깊이 있게 활용할 수 있습니다.