10분
제너레이터 표현식과 yield from
100만 행 CSV를 메모리 초과 없이 - 제너레이터
제너레이터 표현식과 yield from
Python 고급: 제너레이터, 데코레이터, 컨텍스트 매니저, Type Hints > 100만 행 CSV를 메모리 초과 없이 - 제너레이터
학습 목표
제너레이터 표현식 문법을 익힌다 yield from의 용도를 이해한다 중첩 이터러블 평탄화를 구현한다
제너레이터 표현식
리스트 컴프리헨션 vs 제너레이터 표현식
에디터 로딩 중...
함수 인자로 바로 전달
에디터 로딩 중...
yield from: 이터러블 위임
문제: 중첩 리스트 평탄화
에디터 로딩 중...
실용 예제: 재귀적 트리 순회
에디터 로딩 중...
yield from의 장점
| 특징 | for + yield | yield from |
|---|---|---|
| 코드량 | 2줄 | 1줄 |
| 가독성 | 보통 | 좋음 |
| 성능 | 약간 느림 | 최적화됨 |
"yield from은 이터러블 위임입니다. 다른 이터러블의 모든 값을 그대로 전달합니다."
핵심 포인트
- • 제너레이터 표현식: (x for x in iterable) - 메모리 효율적
- • yield from: 이터러블의 모든 요소를 위임
- • 재귀 제너레이터에서 특히 유용