2011년 2월 6일 일요일

파이썬으로 Yield사용해서 순환수 만들기 (cyclic)

순환수라는 것은 뭐냐하면 1-2-3-4-5-1-2-3-4-5- ....

이렇게 무한하게 도는 수열입니다.

이것을 왜 보여드리냐 하면, 파이썬의 yield을 사용하면

이 순환수가 아주 심플하게 만들 수가 있습니다

def iter_func:
  i =1
  while True:
    yield i 
    i += 1

이렇게 하면됩니다.

그리고서는 다른 함수에서

iter = iter_func() 로 선언하면 iterator로 선언이 됩니다.

그다음에는 iter.next()로 하나씩 꺼내오면 됩니다.

이게 iterator입니다, 반복자라고도 하는데,

고등학교때 배운 무한수열 이런거라고 생각하시면 쉽습니다.

표준 라이브러리의
itertools.cycle과 헷갈릴수도 있는데 itertools.cycle은 무한 반복수열입니다.

generator는 좀 더 customizing이 가능한 수열이죠..

댓글 없음:

댓글 쓰기