Overview

Python에서 Comprehension을 통해 짧고 간결한 방식으로 새로운 컬렉션(list, set, dict 등)을 생성할 수 있다. Tuple Comprehension은 없고 대신 Generator라고 한다.

Comprehension

Comprehension(컴프리헨션)은 반복문과 조건문을 한 줄로 표현하여 새로운 컬렉션을 생성하는 문법이다.

List Comprehension

List Comprehension(리스트 컴프리헨션)은 기존 list나 iterable에서 새로운 list를 한 줄로 간결하게 생성하는 방법이다.

# for loop
squares_even = []
for x in range(10):
    if x % 2 == 0:
        squares_even.append(x**2)
# List Comprehension
squares = [x**2 for x in range(10) if x % 2 == 0]

Nested List Comprehension

Nested List Comprehension은 for문을 다중으로 사용하는 방법이다.

Set Comprehension

Set Comprehension(세트 컴프리헨션)은 새로운 set를 한 줄로 간결하게 생성하는 방법이다. List comprehension과 비슷하지만 정해진 순서가 없고, 중복 없이 값을 저장한다.

# for loop
unique_squares = set()
for x in range(10):
    unique_squares.add(x**2)
# Set Comprehension
unique_squares = {x**2 for x in range(10)}

Dictionary Comprehension

Dictionary Comprehension(딕셔너리 컴프리헨션)은 키-값 쌍으로 구성된 새로운 dictionary를 한 줄로 간결하게 생성하는 방법이다.