>  기사  >  백엔드 개발  >  Python에서 생성기 개체를 재설정하는 방법은 무엇입니까?

Python에서 생성기 개체를 재설정하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-10-30 14:02:03452검색

How to Reset a Generator Object in Python?

Python에서 생성기 개체 재설정: 대안 탐색

생성기는 목록을 만들지 않고도 값 시퀀스를 반복하는 효율적인 방법을 제공합니다. 메모리. 그러나 생성기가 모든 값을 생성하면 소진되어 직접 재사용할 수 없습니다. 이는 Python에서 생성기 개체를 재설정하는 방법에 대한 질문을 제기합니다.

안타깝게도 생성기에는 재설정 방법이 내장되어 있지 않습니다. 생성기를 재사용하려면 다음과 같은 몇 가지 옵션이 있습니다.

  1. 생성기 함수 다시 실행: 가장 간단한 접근 방식은 생성기 함수를 다시 실행하여 새 생성기 객체를 생성하는 것입니다. 이 옵션을 사용하면 생성기가 초기 상태에서 시작되어 필요한 값을 다시 계산합니다.
  2. 생성기 결과를 데이터 구조에 저장합니다. 또는 생성기 결과를 목록이나 배열과 같은 데이터 구조. 이를 통해 생성기 함수를 다시 실행하지 않고도 값을 여러 번 반복할 수 있습니다. 그러나 이 옵션은 값의 전체 시퀀스에 메모리를 할당하므로 대형 생성기에서는 문제가 될 수 있습니다.

각 옵션에 대해 발췌한 다음 코드를 고려하세요.

옵션 1(생성기 기능 다시 실행):

<code class="python">y = FunctionWithYield()
for x in y: 
    print(x)
y = FunctionWithYield()
for x in y: 
    print(x)</code>

옵션 2(생성기 결과를 목록에 저장):

<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에서 생성기 개체를 재설정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.