본문 바로가기
Software/Python

[파이썬의 기본] 함수에 사용되는 특별한 기능 - 제너레이터(Generator)

by lovey25 2019. 4. 24.
반응형

제너레이터(Generator)

제너레이터는 리스트, 튜플과 같은 반복되는 구조의 형태인 이터러블(iterable)의 한 종류인데 함수와 “yield”구문을 사용하여 생성할 수 있습니다. 리스트와는 달리 제너레이터는 임의의 인덱싱이 불가하지만 for 루프를 통해서 반복연산은 가능합니다.

예제:

def countdown(): 
  for i in range(3): 
    yield i 
     
print(list(countdown())) 

결과:

“yield” 키워드는 함수의 “return”키워드 대신 사용되는데, 지역변수인 결과값을 소멸시키지 않고 함수를 호출한 caller에게 반환합니다.

위의 예제에서 처럼 유한한 요소를 가진 제너레이터는 “list”함수를 이용해서 리스트형으로 변환도 가능합니다. 



끝!

반응형

댓글