10

제너레이터 함정 퀴즈

100만 행 CSV를 메모리 초과 없이 - 제너레이터

학습 목표

제너레이터 사용 시 흔한 실수를 인지한다 일회성 소진 문제를 이해한다 지연 평가의 부작용을 파악한다

5문제

Q1. 다음 코드의 출력은? gen = (x for x in [1, 2, 3]) print(sum(gen)) print(sum(gen))

Q2. 다음 코드에서 "생성"이 출력되는 시점은? gen = (print("생성") or x for x in [1, 2, 3]) print("시작") list(gen)

Q3. 다음 코드의 문제점은? results = [] for x in data: results.append(process(x)) return results

Q4. len(gen)이 동작하지 않는 이유는?

Q5. 제너레이터를 두 번 사용해야 할 때 올바른 방법은?