🍚전공이 밥 먹여준다믄/🐍 파이썬
🐍 [기초] 리스트 컴프리헨션 10분 컷 정리 – for문보다 짧고, 더 파이썬답게
code.with.siyeon
2025. 5. 15. 23:23
파이썬 수업을 듣다 보면 꼭 나오는 문법이 있다.
“이건 리스트 컴프리헨션이라고 해서요,
for문을 한 줄로 줄인 문법입니다~”
🧠 처음엔 그냥…
squares = [x**2 for x in range(5)]
이걸 보고
“우와 신기하네” 하고 넘겼는데,
사실 그 구조가 왜 필요한 건지 몰랐다.
🔹 이걸 언제 써야 하지? 🤔
처음엔 그냥 일반 for문이 더 익숙했다.
squares = []
for x in range(5):
squares.append(x**2)
그런데 프로젝트를 하다 보니
리스트를 만들고, 반복 돌리고, 조건 걸고 하는 게 너무 반복적이었다.
그때 알게 됐다.
❗ “내가 자주 쓰는 구조를 한 줄로 줄이는 게
결국은 생산성과 가독성을 높이는 방법이구나.”
🔹 기본 구조는 이렇게 생겼다
[표현식 for 변수 in 반복가능한_객체]
예시 1️⃣: 제곱값 리스트 만들기
[x**2 for x in range(5)]
# → [0, 1, 4, 9, 16]
예시 2️⃣: 짝수만 필터링하기
[x for x in range(10) if x % 2 == 0]
# → [0, 2, 4, 6, 8]
예시 3️⃣: 문자열 길이 리스트로 변환
[len(word) for word in ["apple", "banana", "kiwi"]]
# → [5, 6, 4]
🔹 이걸 왜 쓰게 됐는지?
처음엔 짧아서 오히려 헷갈렸는데,
나중에 데이터 필터링이나 가공 작업할 때
한 줄로 표현할 수 있는 유연함이 너무 편했다.
특히 내가 딕셔너리나 JSON 다룰 때
리스트 내포 없으면 진짜 불편했을 거다.
💡 그리고 요건 헷갈릴 수 있다!
중첩 리스트 컴프리헨션:
[[i*j for j in range(1,4)] for i in range(1,4)]
# → [[1,2,3],[2,4,6],[3,6,9]]
이건 익숙해지기 전엔 그냥
👉 두 개의 for문이 바깥부터 안으로 붙은 구조라고 이해하면 된다!
✍️ 정리하자면…
- 리스트 컴프리헨션은 짧고, 간결하고, 파이썬스러운 반복문
- 표현식 → 반복 → 조건 순서로 읽으면 이해가 빠르다
- for문보다 빠르다기보다, 명확한 목적을 가진 리스트 생성에 적합
- 복잡한 가공이 많을수록 컴프리헨션은 읽기 쉽고 쓰기 편하다
처음엔 그저 신기했던 이 문법이
이젠 내가 가장 자주 쓰는 표현 중 하나가 됐다.
📌 “코드를 짧게 쓰는 게 목적이 아니라,
의도를 명확하게 드러내는 게 목적이다.”
📘 다음 시리즈 예고?
이제부터는 기초 문법을 벗어나
실전 실습 / 오류 해결 / 구조 설계로 넘어가볼 예정이에요 😊