둘의 차이는 괄호보다 소비 방식이야
리스트 컴프리헨션은 결과를 모두 계산해 저장하고, 제너레이터 표현식은 다음 값이 필요할 때 계산해. 입력이 10억 개여도 제너레이터 객체 자체는 작지만 리스트는 모든 원소의 자리를 마련해야 해.
한 번 읽고 끝이면 흐르게 둬
sum, any, all, 첫 결과 찾기처럼 한 번만 소비하는 작업은 제너레이터와 잘 맞아. 답이 일찍 정해지면 뒤의 계산을 건너뛰어. 함수의 유일한 인자라면 괄호도 생략할 수 있어.
여러 번 읽거나 위치 접근이 필요하면 리스트
같은 결과를 반복해서 걷고, 길이와 인덱스를 쓰고, 정렬하거나 뒤에서 읽어야 한다면 처음부터 리스트로 만드는 편이 맞아. 필요한 시점에 list(generator)로 구체화할 수도 있지만 그 순간 메모리 비용을 치러.
원칙: 생산 방식이 아니라 소비 계약으로 선택해. 한 번 흐르면 제너레이터, 보관하고 다시 읽으면 리스트야.