리스트·딕셔너리·집합 컴프리헨션은 단순한 변환과 필터를 결과 모양 그대로 선언해. append를 위한 반복문이나 짧은 람다를 붙인 map·filter보다 읽기 쉬운 경우가 많아. 반대로 str.upper처럼 이미 이름이 뜻을 말해 주는 함수를 그대로 적용한다면 map도 자연스러워.
결과를 한 번만 소비하거나 sum·any·all·max 같은 축약 함수에 바로 넘길 때는 대괄호 대신 제너레이터 표현식을 써 중간 리스트를 만들지 않아. 큰 입력이나 무한 시퀀스에서는 메모리와 단락 평가의 이점이 커.
하지만 기록, 여러 단계 변경, 여러 갈래 예외 복구가 들어가면 한 줄이 상태를 숨겨. Python다운 코드는 줄 수를 줄이는 경쟁이 아니라 독자가 한 번에 추적할 상태를 줄이고 문제 복잡도에 문법을 맞추는 일이야.