[python] 조건문에서의 제너레이터 표현식 사용하기
이번에는 조건문에서의 제너레이터 표현식 사용에 대해 알아보겠습니다.
조건문과 제너레이터 표현식
조건문을 이용하여 제너레이터 표현식을 사용하면 특정 조건을 만족하는 값들만 제너레이터로 생성할 수 있습니다.
다음은 0부터 9까지의 숫자 중에서 짝수만을 제너레이터로 생성하는 예제입니다.
evens = (x for x in range(10) if x % 2 == 0)
이 예제에서는 0부터 9까지의 숫자를 생성하는 범위(range) 객체를 이용하여 10 미만의 숫자들에 대해 조건을 걸어 짝수인 경우에만 제너레이터로 생성하도록 했습니다.
이제 evens
를 순회하면 0, 2, 4, 6, 8을 차례대로 반환합니다.
제너레이터 표현식과 조건문을 함께 사용하는 이유
제너레이터 표현식을 이용하여 조건문에 맞는 값을 게으르게 생성하는 것은 메모리를 효율적으로 활용할 수 있는 장점을 제공합니다. 특히 대용량의 데이터나 무한한 시퀀스를 다룰 때 유용합니다.
조건문을 추가하여 원하는 조건에 맞는 값을 추출하거나 특정 작업을 수행할 수 있으므로 상당히 유연한 사용이 가능합니다.
제너레이터 표현식과 조건문의 함께 사용은 코드를 간결하게 유지하면서도 필요한 값을 조건에 맞게 생성하는 효과적인 방법을 제공합니다.
참고문헌:
- 파이썬 공식 문서: https://docs.python.org/3/tutorial/classes.html#generator-expressions