[파이썬] 제너레이터와 yield 키워드

Python의 제너레이터는 반복 가능한 객체를 만들기 위해 사용하는 특별한 함수 입니다. 제너레이터는 함수 내부에서 yield 키워드를 사용하여 값을 반환합니다.

제너레이터는 함수가 호출될 때마다 한 번씩 값을 반환하는 객체를 만들어 냅니다. 따라서 제너레이터는 함수가 종료되지 않고 계속 실행되는 것처럼 보이는 특징이 있습니다. 이러한 특징 덕분에 제너레이터는 메모리를 절약하고 반복 가능한 객체를 만들 때 사용하기 좋습니다.

제너레이터 예제

다음은 제너레이터를 사용하여 리스트를 반환하는 함수의 예제입니다.

def my_generator(n):
    i = 0
    while i < n:
        yield i
        i += 1

for i in my_generator(5):
    print(i)

위의 코드는 0부터 4까지의 숫자를 출력합니다. 제너레이터는 yield 키워드를 사용하여 값을 반환합니다. 따라서 my_generator 함수가 호출될 때마다 yield 키워드가 실행되고 값이 반환됩니다.

제너레이터 사용하기

제너레이터는 반복 가능한 객체를 만들 때 사용하기 좋습니다. 예를 들어 다음과 같은 리스트를 만들 때 제너레이터를 사용할 수 있습니다.

my_list = [i for i in my_generator(10)]

위의 코드는 0부터 9까지의 숫자를 가진 리스트를 만듭니다. 이러한 방법을 사용하면 메모리를 절약하고 반복 가능한 객체를 만들 수 있습니다.

결론

Python의 제너레이터는 반복 가능한 객체를 만들기 위해 사용하는 특별한 함수 입니다. 제너레이터는 함수 내부에서 yield 키워드를 사용하여 값을 반환합니다. 제너레이터는 메모리를 절약하고 반복 가능한 객체를 만들 때 사용하기 좋습니다.