Python - Iterators

Python - Iterators 데이터 컬렉션의 요소들을 순차적으로 접근할 수 있게 해주는 객체 이터레이터의 기능과 역할 데이터 스트림에서 한 번에 하나의 항목을 반환 현재 항목과 방문한 항목을 추적 컨테이너의 요소에 순차적으로 접근 메모리를 효율적으로 사용 이터레이터의 특징 __iter__() 및 __next__() 메서드를 구현하여 이터레이터 프로토콜을 따름 next() 함수를 사용하여 다음 요소에 접근 모든 요소를 순회한 후 StopIteration 예외 발생 지연 평가(lazy evaluation)를 지원하여 필요한 요소만 생성 활용 대용량 파일 처리 데이터베이스 쿼리 결과 처리 스트리밍 데이터 처리 메모리 효율적인 데이터 처리 실시간 데이터 생성 이터레이터의 종류 기본 이터레이터 가장 일반적인 형태의 이터레이터. __iter__와 __next__ 메서드를 구현하여 만든다. ...

November 25, 2024 · 4 min · Me

Generator and Iterator

Generator and Iterator 이터레이터는 값을 차례대로 반환하는 객체로, __iter__()와 __next__() 메서드를 구현한다. 제너레이터는 yield 키워드를 사용하여 값을 하나씩 반환하는 함수로, 이터레이터를 생성한다. 제너레이터와 이터레이터의 주요 차이점 비교 항목 이터레이터 제너레이터 정의 방식 __iter__와 __next__ 메서드를 구현하는 클래스 yield 키워드를 사용하는 함수 상태 저장 인스턴스 변수를 통해 명시적으로 상태 저장 함수의 실행 상태가 자동으로 저장 메모리 사용 모든 상태를 명시적으로 저장해야 함 필요한 값만 생성하여 메모리 효율적 구현 복잡도 상대적으로 복잡함 (여러 메서드 구현 필요) 매우 단순함 (일반 함수처럼 작성) 용도 복잡한 이터레이션 로직이 필요한 경우 간단한 순차적 데이터 생성 재사용성 클래스로 구현되어 재사용 용이 한 번 순회하면 소진됨 기능 확장성 클래스이므로 추가 메서드와 속성 정의 가능 함수 범위로 제한됨 성능 상태 관리를 위한 추가 오버헤드 존재 매우 가벼움 코드 가독성 구조화된 형태로 명확하나 장황할 수 있음 간결하고 직관적 양방향 통신 메서드를 통해 구현 가능 send() 메서드로 기본 제공 이러한 차이점들은 실제 사용에서 다음과 같은 의미를 가진다. ...

November 24, 2024 · 5 min · Me