🖥️ IT, 컴퓨터/🐍 Python

[Python] 파이썬 리스트 컴프리헨션 (List Comprehension)이란?

김 홍시 2024. 1. 25.
반응형

 

 

파이썬 리스트 컴프리헨션(List Comprehension)이란? – 초보자도 이해하는 쉬운 예제

파이썬(Python)을 배우다 보면 꼭 만나게 되는 개념이 바로 **리스트 컴프리헨션(List Comprehension)**입니다.
처음에는 다소 생소하게 느껴질 수 있지만, 한 번 익숙해지면 코드가 훨씬 더 간결하고, 효율적이 됩니다.

이 글에서는 리스트 컴프리헨션이 무엇인지, 왜 사용하는지, 그리고 실무에서 어떻게 활용되는지 예제와 함께 쉽게 설명드리겠습니다.


✅ 리스트 컴프리헨션이란?

리스트 컴프리헨션이란, 기존 리스트에서 조건에 맞는 값을 추출하거나 변형하여 새 리스트를 만드는 문법입니다.
한 줄의 코드로 반복문과 조건문을 결합할 수 있어, 간결하면서도 가독성이 높은 코드를 작성할 수 있습니다.


📌 기본 문법

python
복사편집
[표현식 for 변수 in 반복가능한객체 if 조건]

예를 들어, 1부터 10까지 숫자 중 짝수만 골라 리스트로 만들고 싶다면?

python
복사편집
even_numbers = [x for x in range(1, 11) if x % 2 == 0] print(even_numbers) # 출력: [2, 4, 6, 8, 10]

기존 방식과 비교해볼까요?

python
복사편집
# 기존 for문 방식 even_numbers = [] for x in range(1, 11): if x % 2 == 0: even_numbers.append(x)

리스트 컴프리헨션이 훨씬 간결하죠?


🧠 리스트 컴프리헨션의 장점

  • ✅ 코드가 짧고 읽기 쉬움
  • ✅ 성능(속도)이 일반 for문보다 빠름 (작은 데이터셋 기준)
  • ✅ 조건 필터링과 값 변형을 동시에 처리 가능

🔍 실무 예제 – 특정 컬럼명 필터링하기 (데이터 분석)

예를 들어, 데이터프레임에서 '승차'라는 단어가 포함된 컬럼만 추출하고 싶다면?

python
복사편집
boarding_columns = [col for col in df.columns if '승차' in col]

해당 코드는 다음과 같이 읽을 수 있습니다:
“df.columns 안에서 ‘승차’라는 단어가 포함된 모든 컬럼명을 리스트로 반환해줘.”


📌 조건 없이 모든 항목 변형 예제

숫자 제곱 리스트 만들기:

python
복사편집
squares = [x**2 for x in range(1, 6)] # 결과: [1, 4, 9, 16, 25]

✅ filter 함수와 비교

python
복사편집
# 리스트 컴프리헨션 [x for x in range(10) if x % 2 == 0] # filter 함수 list(filter(lambda x: x % 2 == 0, range(10)))

둘 다 같은 결과를 얻을 수 있지만, 리스트 컴프리헨션은 더 직관적으로 읽힙니다.


🧩 마무리 정리

구분리스트 컴프리헨션기존 for문filter/map
코드 길이 짧음 보통
가독성 높음 낮음
성능 좋음 (작은 데이터) 보통 보통
조건문 포함 가능 가능 제한적

✨ 결론

리스트 컴프리헨션은 파이썬의 핵심 문법 중 하나로, 간단한 데이터 처리부터 복잡한 데이터 변형까지 다양하게 활용됩니다.
처음엔 낯설 수 있지만, 반복적으로 사용해보면 자연스럽게 손에 익게 됩니다.

지금부터라도 반복문 대신 리스트 컴프리헨션으로 코드를 더 깔끔하게 바꿔보세요!

반응형

댓글