본문 바로가기

Programming/Python

[Python] 리스트 컴프리헨션(List Comprehension)

이번 포스팅에서는 파이썬의 리스트컴프리헨션에 대해 정리하였습니다.

 

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