반응형
질문
파이썬에서 "iterable", "iterator", 그리고 "iteration"은 무엇인가요? 이들은 어떻게 정의되나요?
답변
반복은 한 번에 하나씩 각 항목을 가져오는 것에 대한 일반적인 용어입니다. 루프를 사용하여 항목 그룹을 반복하는 경우(명시적 또는 암시적), 그것은 반복입니다.
파이썬에서 반복 가능한(iterable)과 반복자(iterator)는 특정한 의미를 가지고 있습니다.
반복 가능한(iterable)은 __iter__
메서드를 반환하거나 0부터 시작하는 연속적인 인덱스를 사용할 수 있는 __getitem__
메서드를 정의하는 객체입니다(IndexError
가 더 이상 유효하지 않을 때 발생). 따라서 반복 가능한(iterable)은 반복자(iterator)를 가져올 수 있는 객체입니다.
반복자(iterator)는 next
(Python 2) 또는 __next__
(Python 3) 메서드를 가진 객체입니다.
파이썬에서 for
루프, map
, 리스트 컴프리헨션 등을 사용할 때마다 next
메서드가 자동으로 호출되어 반복자(iterator)에서 각 항목을 가져오는 과정을 거치게 됩니다.
학습을 시작하기에 좋은 곳은 튜토리얼의 반복자 섹션과 표준 타입 페이지의 반복자 타입 섹션입니다. 기본 개념을 이해한 후에는 함수형 프로그래밍 HOWTO의 반복자 섹션을 시도해보세요.
반응형
댓글