[python] 함수의 제너레이터 활용

제너레이터(generator)는 값을 쉽게 생성하고 반환할 수 있는 파이썬의 강력한 기능입니다. 이 기능은 함수를 통해 값을 만들어 내고 이 값을 순회 가능한(iterable) 방식으로 반환합니다. 제너레이터를 사용하면 모든 값을 한꺼번에 만들거나 반환하지 않고, 필요에 따라 값을 생성할 수 있습니다.

이번 글에서는 파이썬 함수에서 제너레이터를 어떻게 활용할 수 있는지 살펴보겠습니다.

1. 제너레이터 함수 정의하기

제너레이터 함수는 일반 함수와 유사하지만 yield 문을 사용하여 값을 반환한다는 점이 다릅니다.

def 제너레이터_함수():
    yield 1
    yield 2
    yield 3

위의 예제에서는 yield를 사용하여 1, 2, 3을 반환하는 제너레이터 함수를 정의했습니다.

2. 제너레이터 함수 활용하기

제너레이터 함수를 호출하면 제너레이터 객체가 생성됩니다. 이 객체는 next() 함수를 통해 값을 반환하고, 모든 값이 반환될 때까지 순회할 수 있습니다.

gen = 제너레이터_함수()
print(next(gen))  # 1 출력
print(next(gen))  # 2 출력
print(next(gen))  # 3 출력

3. 제너레이터를 활용한 루프

제너레이터를 사용하면 for 루프를 통해 간편하게 값을 순회할 수 있습니다.

def 제너레이터_함수():
    yield 1
    yield 2
    yield 3

gen = 제너레이터_함수()
for value in gen:
    print(value)

위의 예제에서는 제너레이터 함수를 사용하여 값을 생성하고, 이 값을 for 루프를 통해 간편하게 출력할 수 있습니다.

4. 정리

제너레이터를 이용하면 메모리 효율을 높일 수 있고, 계산을 지연시킬 수 있어서 큰 데이터셋에 대한 효율적인 처리가 가능합니다. 함수에서 제너레이터를 활용하여 이점을 최대한 누리는 것이 중요합니다.

이상으로 파이썬 함수의 제너레이터 활용에 대해 알아보았습니다.

더 많은 정보를 원하시면 파이썬 공식 문서를 확인해보세요.