Python의 생성기는 데이터를 느리게 평가하여 한 번에 하나씩 값을 생성하는 효율적인 방법입니다. 그러나 생성기는 한 번만 반복할 수 있습니다. 생성기를 여러 번 반복해야 하는 경우 다음과 같은 여러 옵션이 있습니다.
생성기를 재설정하는 가장 간단한 방법은 생성기를 실행하는 것입니다. 다시 기능합니다. 이렇게 하면 독립적으로 반복할 수 있는 새로운 생성기 개체가 생성됩니다.
<code class="python">y = FunctionWithYield() for x in y: print(x) y = FunctionWithYield() for x in y: print(x)</code>
생성기 결과를 데이터 구조에 저장할 수도 있습니다. 목록과 같은 메모리에. 이렇게 하면 결과를 여러 번 반복할 수 있습니다.
<code class="python">y = list(FunctionWithYield()) for x in y: print(x) # can iterate again: for x in y: print(x)</code>
옵션 선택은 특정 성능 요구 사항에 따라 달라집니다. 옵션 1은 생성기 결과를 저장할 필요가 없으므로 메모리 관점에서 더 효율적입니다. 그러나 옵션 2는 생성기 함수를 다시 실행할 필요가 없기 때문에 처리 관점에서 더 효율적입니다.
궁극적으로 Python에서 생성기 개체를 재설정하는 가장 좋은 방법은 해당 컨텍스트에 따라 달라집니다. 사용중입니다.
위 내용은 여러 반복을 위해 Python 생성기를 재구성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!