Generator
-
제너레이터(Generator) 활용 예제python 2026. 1. 11. 23:51
코딩을 하다 보면 데이터가 너무 커서 MemoryError가 발생하거나, 무한히 반복되는 데이터를 다뤄야 할 때가 있죠. 이럴 때 리스트(List) 대신 제너레이터를 사용하면 메모리 효율을 극적으로 높일 수 있습니다.제너레이터(Generator)란?제너레이터는 이터레이터(Iterator)를 생성하는 함수입니다.쉽게 비유하자면, 리스트(List)가 이미 만들어진 음식 100접시를 식탁에 한 번에 올려두는 것이라면, 제너레이터는 주문이 들어올 때마다 요리사가 음식을 하나씩 만들어 내어주는 것과 같습니다.이를 지연 평가(Lazy Evaluation)라고 합니다. 데이터가 필요할 때(호출될 때) 비로소 생성하기 때문에 메모리를 거의 쓰지 않습니다.핵심 키워드: yield일반 함수는 return을 만나면 값을 ..
-
Iterable ? Iterator? Generator?python 2026. 1. 9. 03:53
파이썬을 공부하다 보면 for 문을 수도 없이 사용하게 됩니다. 하지만 Iterable, Iterator, Generator라는 용어가 나오면 갑자기 머리가 복잡해지죠."리스트도 반복되고, 제너레이터도 반복되는데 도대체 무슨 차이지?"오늘은 이 세 가지 개념의 정확한 정의와 포함 관계(상속 관계)를 코드로 확실하게 정리해 보겠습니다.한 눈에 보는 포함 관계 (The Big Picture)결론부터 말하면, 이들은 별개의 개념이 아니라 수학의 부분집합(Subset) 혹은 상속(Inheritance) 관계를 가집니다.Iterable ⊃ Iterator ⊃ Generator(이터러블이 가장 크고, 제너레이터가 가장 작습니다.)Iterable: 반복 가능한 모든 것 (가장 큰 범위)Iterator: 이터러블 중에..