[파이썬] 제너레이터 표현식 (generator expressions)

Python의 제너레이터 표현식은 일반적인 리스트 표현식과 비슷하지만, 리스트를 만들지 않고 제너레이터를 만들어 반복 가능한 객체를 반환합니다. 제너레이터 표현식은 메모리를 절약하고 코드를 간결하게 만들어 줍니다.

제너레이터 표현식의 기본 문법

제너레이터 표현식은 다음과 같은 기본 문법을 가집니다.

(expression for item in iterable)

제너레이터 표현식은 다음과 같이 일반적인 리스트 표현식과 비슷합니다.

[expression for item in iterable]

그러나 리스트 표현식과 다르게, 제너레이터 표현식은 리스트를 만들지 않고 제너레이터를 만들어 반복 가능한 객체를 반환합니다.

제너레이터 표현식의 예제

제너레이터 표현식을 사용하면 다음과 같이 리스트를 만들 때 메모리를 절약할 수 있습니다.

# 리스트 표현식
numbers = [x**2 for x in range(10)]

# 제너레이터 표현식
numbers = (x**2 for x in range(10))

또한 다음과 같이 필터링하거나 매핑하는 등의 동작을 수행할 수 있습니다.

# 필터링
even_numbers = (x for x in range(10) if x % 2 == 0)

# 매핑
squared_numbers = (x**2 for x in range(10))

제너레이터 표현식의 장점

제너레이터 표현식은 메모리를 절약하고 코드를 간결하게 만들어 줍니다. 또한 리스트 표현식과 달리 반복 가능한 객체를 반환하기 때문에 메모리를 절약할 수 있습니다. 따라서 리스트 표현식보다 메모리를 절약하고 코드를 간결하게 만들 수 있습니다.