반응형
Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
Tags
- 자바스크립트
- 테스트자동화
- 자바문법
- Visual Studio Code
- CSS
- 배열
- Eclipse
- java테스트
- input
- 문자열
- IntelliJ
- ArrayList
- junit5
- 스프링부트
- Array
- html
- SpringBoot
- junit
- HashMap
- 정규식
- math
- Java
- 자바
- vscode
- js
- javascript
- string
- 인텔리제이
- 단위테스트
- list
Archives
- Today
- Total
어제 오늘 내일
[Python 기초] "세 줄 코드를 한 줄로!" 리스트 컴프리헨션 완벽 이해 본문
리스트 컴프리헨션은 리스트 안에 for문과 if문을 직접 집어넣어 새로운 리스트를 생성하는 기법입니다. 처음엔 생소할 수 있지만, 익숙해지면 가독성과 처리 속도라는 두 마리 토끼를 모두 잡을 수 있는 강력한 무기가 됩니다.
1. 기본 구조: 문 압축하기
기존의 방식은 빈 리스트를 만들고, for문을 돌리면서 하나씩 append를 해줘야 했습니다. 리스트 컴프리헨션은 이를 한 줄로 해결합니다.
📌 예제 코드: 1부터 5까지의 제곱 구하기
# 1. 기존 방식 (3줄)
squares = []
for x in range(1, 6):
squares.append(x**2)
# 2. 리스트 컴프리헨션 (1줄)
# [ 표현식 for 항목 in 반복가능객체 ]
squares_comp = [x**2 for x in range(1, 6)]
print(squares_comp)
# 출력: [1, 4, 9, 16, 25]
2. 조건문() 추가하기: 데이터 필터링
특정 조건에 맞는 데이터만 골라내고 싶을 때, for문 뒤에 if문을 붙여주면 됩니다.
]
📌 예제 코드: 1부터 10 사이의 짝수만 담기
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# "n을 담을 건데, numbers에서 꺼낸 n이 2로 나누어 떨어질 때만 담아라!"
evens = [n for n in numbers if n % 2 == 0]
print(evens)
# 출력: [2, 4, 6, 8, 10]
3. 조건부 표현식() 활용하기
조건에 따라 값을 다르게 저장하고 싶을 때는 if-else 문을 for문 앞에 배치합니다.
📌 예제 코드: 홀수/짝수 판별 리스트
data = [1, 2, 3, 4, 5]
# "짝수면 'Even', 홀수면 'Odd'라고 적어서 리스트를 만들어라!"
labels = ["Even" if x % 2 == 0 else "Odd" for x in data]
print(labels)
# 출력: ['Odd', 'Even', 'Odd', 'Even', 'Odd']
4. 실전 활용: 데이터 전처리 (문자열)
크롤링 등으로 수집한 지저분한 문자열 데이터를 한 방에 깔끔하게 정리할 때 최고입니다.
raw_names = [" 김철수 ", "이영희 ", " 박민수"]
# 양쪽 공백을 제거(.strip())한 이름들의 리스트 만들기
clean_names = [name.strip() for name in raw_names]
print(clean_names)
# 출력: ['김철수', '이영희', '박민수']
📝 핵심 요약
- 가독성: 코드가 간결해져서 로직을 한눈에 파악하기 좋습니다.
- 성능: 파이썬 내부적으로 최적화되어 있어 일반
for문보다 실행 속도가 약간 더 빠릅니다. - 주의: 너무 복잡한 중첩 반복문이나 긴 조건문을 한 줄에 넣으면 오히려 가독성을 해칠 수 있습니다. (적당한 길이가 생명!)
리스트 컴프리헨션을 마스터하셨으니, 이제 여러분의 코드는 한층 더 세련되게 변할 거예요.
반응형
'IT > Python' 카테고리의 다른 글
| [Python 기초] "가로를 세로로!" 2차원 리스트 전치(Transpose) 완벽 가이드 (0) | 2026.05.24 |
|---|---|
| [Python 기초] "표 형태의 데이터도 한 줄로!" 2차원 리스트 컴프리헨션 (0) | 2026.05.24 |
| [Python 기초] "따로 노는 리스트를 하나로 묶자!" zip() 함수 활용법 (0) | 2026.05.24 |
| [Python 기초] "누가 빠졌지?" 리스트 차집합 찾기 및 데이터 대조 (0) | 2026.05.22 |
| [Python 기초] "겹치는 데이터만 골라내자!" 리스트 교집합 찾기 3가지 비법 (0) | 2026.05.22 |
Comments
