본문 바로가기
파이썬

파이썬 무한 생성기에 대한 표현이 있습니까?

by º기록 2020. 10. 4.
반응형

무한한 요소를 생성 할 수있는 간단한 생성기 표현식이 있습니까?

이것은 순전히 이론적 인 질문입니다. 여기에 "실용적인"대답이 필요하지 않습니다. :)

예를 들어, 유한 제너레이터를 만드는 것은 쉽습니다.

my_gen = (0 for i in xrange(42))

그러나 무한한 것을 만들려면 내 네임 스페이스를 가짜 함수로 "오염"시켜야합니다.

def _my_gen():
    while True:
        yield 0
my_gen = _my_gen()

별도의 파일에서 작업하고 나중에 가져 오기 -하는 것은 중요하지 않습니다.

나는 또한 itertools.repeat 가 정확히 이것을한다는 것을 알고 있습니다. 그것없이 한 줄짜리 솔루션이 있는지 궁금합니다.

 

해결 방법

 

for x in iter(int, 1): pass

따라서 iter (int, 1) 는 무한 반복자입니다. 이 특정 테마에는 분명히 많은 변형이 있습니다 (특히 믹스에 lambda 를 추가 한 경우). 특정 메모의 한 가지 변형은 iter (f, object ()) 입니다. 새로 생성 된 객체를 센티넬 값으로 사용하면 첫 번째 인수로 사용 된 콜 러블에 관계없이 거의 무한 반복자를 보장합니다.

 

참조 페이지 https://stackoverflow.com/questions/5737196

 

 

반응형

댓글