이번 포스팅에서는 파이썬의 리스트컴프리헨션에 대해 정리하였습니다.
List Comprehension
파이썬을 파이썬답게 만들어주는 문법 중 하나가 바로 리스트 컴프리헨션(list comprehension)입니다.
반복문 없이 한줄로 리스트를 생성할 수 있고, 조건도 간단히 붙일 수 있어서 자주 쓰이는 기능입니다.
리스트 컴프리헨션의 기본 사용법부터 다양한 예제들을 정리해 보았습니다.
1. 기본 문법
리스트 컴프리헨션의 기본 사용법은 아래와 같습니다.
[ 표현식 for 변수 in iterable ]
예제:
squared = [x**2 for x in range(5)]
print(squared) #[1,4,9,16]
2. if 조건문 추가
조건문을 추가하여 특정 조건을 만족하는 리스트를 생성할 수 있습니다.
이때 조건문은 for 뒤에 위치합니다.
[ 표현식 for 변수 in iterable if condition]
예제:
even = [x for x in range(10) if x % 2 == 0]
print(even) # [0, 2, 4, 6, 8]
3. if-else 조건문 분기
if-else 조건문을 추가하여 리스트에 포함될 값을 결정할 수 있습니다.
이때 조건문은 for루프 앞에 위치합니다.
[표현식1 if condition else 표현식2 for 변수 in iterable]
- 표현식1 : condition을 만족한 결과
- 표현식2 : condition을 만족하지 않은 결과
예제:
result = ['even' if x % 2 == 0 else 'odd' for x in range(5)]
print(result) # ['even', 'odd', 'even', 'odd', 'even']
4. 중첩 for문 구조
[표현식 for 변수1 in iterable for 변수2 in iterable]
- 앞에 있는 for문부터 바깥쪽 반복
- 뒤에 있는 for문이 안쪽 반복
예제:
[(x, y) for x in [1, 2] for y in ['a', 'b']]
# [(1, 'a'), (1, 'b'), (2, 'a'), (2, 'b')]
# 2차원 배열 평탄화
matrix = [[1, 2], [3, 4]]
flat = [num for row in matrix for num in row]
print(flat) # [1, 2, 3, 4]
요약
- 리스트 컴프리헨션은 파이썬에서 가장 많이 쓰이는 문법 중 하나
- 가독성이 좋고, 간결한 코드 작성에 도움 됨
- 조건문, 중첩 반복, 딕셔너리/집합에도 응용 가능
- 복잡한 처리일수록 오히려 가독성을 해칠 수 있으니, 적절한 수준에서 활용하는 게 좋음
'Programming > Python' 카테고리의 다른 글
[Python] 문자열 포맷팅 정리 (0) | 2025.06.03 |
---|---|
[Python] zip()과 enumerate() (4) | 2025.06.03 |
[Python] filter()와 reduce() (0) | 2025.05.30 |
[Python] lambda 함수와 map 함수 (0) | 2025.05.29 |
[Python] ==와 is 연산자의 차이 (2) | 2025.05.27 |