파이썬 리스트 컴프리헨션의 8단계 마스터 가이드

Level 0: 리스트 컴프리헨션 기본 구조 이해하기

파이썬에서 리스트 컴프리헨션은 새로운 리스트를 생성할 때 반복과 변환을 한 줄로 처리할 수 있는 강력한 문법입니다. 핵심 구조는 다음과 같습니다:

[expression for item in iterable if condition]

이 구조는 세 가지 요소로 구성됩니다:

  • iterable: 반복 가능한 객체 (리스트, 문자열, 범위 등)
  • expression: 각 원소에 적용할 표현식
  • condition: 선택적 필터링 조건

Level 1: 단순 반복문 대체하기

기존의 for 루프를 간결하게 축약할 수 있습니다.

name = "Kim Minsoo"
chars = [c for c in name]
print(chars)
# ['K', 'i', 'm', ' ', 'M', 'i', 'n', 's', 'o', 'o']

전통적인 방식과 비교하면 훨씬 간결합니다:

chars = []
for c in name:
    chars.append(c)

Level 2: 데이터 변환 적용하기

각 원소에 함수를 적용하여 변환할 수 있습니다.

numbers = [1, 2, 3, 4, 5]
squared = [n ** 2 for n in numbers]
print(squared)  # [1, 4, 9, 16, 25]

Level 3: 조건 기반 필터링

if 절을 사용해 특정 조건을 만족하는 원소만 포함시킬 수 있습니다.

values = [12, 8, 15, 3, 9, 22]
evens_over_10 = [x for x in values if x % 2 == 0 and x > 10]
print(evens_over_10)  # [12, 22]

Level 4: 중첩된 반복 처리

다중 for 문을 사용해 2차원 데이터를 평탄화할 수 있습니다.

matrix = [[1, 2], [3, 4], [5, 6]]
flattened = [item for row in matrix for item in row]
print(flattened)  # [1, 2, 3, 4, 5, 6]

Level 5: 중첩된 리스트 컴프리헨션

2차원 리스트를 조건과 함께 생성할 때 유용합니다.

table = [[i * j for j in range(1, 4)] for i in range(1, 4)]
print(table)
# [[1, 2, 3], [2, 4, 6], [3, 6, 9]]

Level 6: 복합 조건과 삼항 연산자 활용

조건부 표현식을 포함해 동적으로 값을 설정할 수 있습니다.

temperatures = [18, 25, 32, 14, 20]
labels = ["높음" if t > 24 else "보통" for t in temperatures]
print(labels)  # ['보통', '높음', '높음', '보통', '보통']

Level 7: 함수와 결합한 고급 활용

내장 함수나 사용자 정의 함수를 통합하여 복잡한 로직을 처리할 수 있습니다.

words = ["hello", "world", "python", "code"]
length_info = [(w, len(w)) for w in words if len(w) > 4]
print(length_info)  # [('hello', 5), ('world', 5), ('python', 6)]

이처럼 데이터 전처리, 필터링, 변환을 하나의 표현식 안에서 완성할 수 있어 코드의 가독성과 효율성을 동시에 높일 수 있습니다.

태그: python List Comprehension Data Processing Code Optimization Functional Programming

8월 18일 05:00에 게시됨