Python 리스트 컴프리헨션, 간결하고 강력한 코드 작성법
Python에서 리스트를 생성하는 방법 중 가장 강력한 기능 중 하나는 리스트 컴프리헨션(List Comprehension)입니다. 이는 기존의 반복문을 대체하여 더 간결하고 가독성 높은 코드를 작성할 수 있도록 도와줍니다. 본 문서에서는 리스트 컴프리헨션의 개념과 다양한 활용 방법을 체계적으로 정리하겠습니다.

목차
- 리스트 컴프리헨션이란?
- 기본 문법과 구조
- 조건문을 활용한 리스트 컴프리헨션
- 중첩 리스트 컴프리헨션
- 딕셔너리 및 집합 컴프리헨션
- 리스트 컴프리헨션 vs. 일반 반복문 성능 비교
- 효율적인 리스트 컴프리헨션 사용법
1. 리스트 컴프리헨션이란?
리스트 컴프리헨션은 한 줄의 표현식으로 리스트를 생성하는 방법입니다. 기존의 for 루프를 사용한 리스트 생성보다 코드가 더 간결하고 가독성이 뛰어납니다.
기존 방식 vs. 리스트 컴프리헨션
| 방법 | 코드 예제 |
|---|---|
| 기존 방식 (for문) |
|
| 리스트 컴프리헨션 |
|
2. 기본 문법과 구조
리스트 컴프리헨션의 기본 문법은 다음과 같습니다.
[표현식 for 요소 in 반복가능객체]
3. 조건문을 활용한 리스트 컴프리헨션
리스트 컴프리헨션에서는 if 조건을 추가하여 특정 조건을 만족하는 요소만 포함할 수 있습니다.
even_numbers = [i for i in range(10) if i % 2 == 0]
print(even_numbers) # [0, 2, 4, 6, 8]
4. 중첩 리스트 컴프리헨션
리스트 컴프리헨션 내부에 또 다른 리스트 컴프리헨션을 사용할 수 있습니다.
matrix = [[i * j for j in range(1, 4)] for i in range(1, 4)]
print(matrix) # [[1, 2, 3], [2, 4, 6], [3, 6, 9]]

5. 딕셔너리 및 집합 컴프리헨션
리스트뿐만 아니라 딕셔너리와 집합에도 컴프리헨션을 적용할 수 있습니다.
- 딕셔너리 컴프리헨션:
{key: value for item in iterable} - 집합 컴프리헨션:
{expression for item in iterable}
squares_dict = {x: x**2 for x in range(5)}
unique_values = {x % 3 for x in range(10)}
print(squares_dict) # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
print(unique_values) # {0, 1, 2}
6. 리스트 컴프리헨션 vs. 일반 반복문 성능 비교
리스트 컴프리헨션은 일반적인 for 루프보다 빠르게 실행됩니다.
import timeit
print(timeit.timeit("[x**2 for x in range(1000)]", number=10000))
print(timeit.timeit("for x in range(1000): squares.append(x**2)", setup="squares=[]", number=10000))
7. 효율적인 리스트 컴프리헨션 사용법
리스트 컴프리헨션을 사용할 때는 다음을 고려해야 합니다.
- 너무 복잡한 연산은 피하고 가독성을 유지
- 중첩 구조가 많다면
for루프를 고려 - 메모리 사용이 많다면 제너레이터 표현식 활용
'프로그래밍 언어 > 파이썬' 카테고리의 다른 글
| 파이썬 복소수 연산, complex를 활용한 수학 계산 (0) | 2025.04.23 |
|---|---|
| Python 문자열 연산(str): 합치기, 나누기, 포매팅 (0) | 2025.04.17 |
| Python bool 값 처리, 조건문과 필터링에 최적화하기 (0) | 2025.04.05 |
| Python complex 객체, 실수와 허수의 조화 이해하기 (0) | 2025.03.30 |
| Python str의 불변성, 메모리와 성능 이해하기 (0) | 2025.03.24 |