Python Iterable & Iterator
Brunch Story
Python 개발할때 알아두면 좋은 iterable & iterator 개념 5가지
Iterable은 멤버를 하나씩 반환할 수 있는 객체입니다. 파이썬에서는 리스트, 튜플, 문자열 등이 iterable 객체입니다. Iterable 객체는 반복문(for loop)에 사용될 수 있어 데이터 처리가 용이합니다. Iterator는 next() 메소드를 사용해 데이터 컬렉션 내의 다음 요소에 접근할 수 있는 객체입니다. Iterable 객체를 통해 Iterator를 생성할 수 있으며, 이를 통해 컬렉션의 요소를 순회합니다.
Iterator 프로토콜은 객체가 iterator로 작동하기 위해 필요한 두 가지 메소드, __iter__()
와 __next__()
를 정의합니다. __iter__()
는 iterator 자기 자신을 반환하고, __next__()
는 컬렉션의 다음 요소를 반환합니다.
Iterator의 끝에 도달했을 때, __next__()
메소드는 StopIteration
예외를 발생시킵니다. for 루프와 같은 반복 구조는 이 예외를 자동으로 처리하여 반복을 종료합니다
Iterator는 Lazy Evaluation을 사용합니다. 즉, 값이 필요할 때까지 계산을 미루는 방식이기 때문에 메모리 사용을 최적화하고, 큰 데이터 컬렉션을 효율적으로 처리할 수 있습니다.
Iterator는 재사용이 불가능합니다. 모든 요소를 순회하고 나서 다시 next() 메소드를 호출하면 StopIteration
예외가 발생합니다. 만약 모든 요소를 순회한 후에 재사용하고 싶다면 iterator를 초기화해야 합니다..
실제로 iterator는 파일 입출력, 데이터베이스 결과 처리 등에서 자주 사용됩니다. 따라서 개념과 작동 원리에 대해서 상세하고 알고 있으면 코드를 더욱 빠르게 이해하고, 서비스를 더욱 비용 효율적으로 만들 수 있습니다.
https://brunch.co.kr/@growthminder/135
다음 내용이 궁금하다면?
이미 회원이신가요?
2024년 3월 20일 오후 5:05