실행 시간은 거의 비슷하지만(둘 다 O(n) 시간이 소요되며, 출력 결과를 보면 제너레이터가 더 빠르지만 실행 환경에 따라 달라질 수 있습니다) 메모리 사용량은 큰 차이를 보입니다.
comprehension time: 0.3193655014038086 comprehension memory size: 8697456Byte. which means 8MB generator time: 0.27238035202026367 generator memory size: 112Byte
컴프리헨션 방식은 8MB를 사용했으나 제너레이터는 단 112Byte만 사용합니다. 이렇게 메모리를 많이 절약할 수 있는 장점이 있지만, 반대로 실행하기 전까지는 데이터를 갖지 않으므로 결과 정보를 저장하려면 실행 비용 + 변수를 사용해야 하는 단점도 있습니다.
결국 리스트 컴프리헨션과 제너레이터를 언제 사용할 것인지는 여러분의 판단입니다. 컴프리헨션을 제너레이터로 대체하여 사용하는 것이 가능하고 여러 장점을 가질 수 있더라도 절대적인 대체제가 아니라는 점을 염두에 두기 바랍니다.