>  기사  >  백엔드 개발  >  Python 생성기를 여러 번 재사용하려면 어떻게 해야 합니까?

Python 생성기를 여러 번 재사용하려면 어떻게 해야 합니까?

DDD
DDD원래의
2024-10-31 20:00:02350검색

How can I reuse a Python generator multiple times?

Python 생성기 개체 재사용:

Python의 강력한 기능인 생성기는 요청 시 느리게 계산되는 값 시퀀스입니다. 그러나 발전기의 특성상 되감을 수는 없습니다. 생성기를 여러 번 재사용하려는 경우 다음과 같은 몇 가지 옵션이 있습니다.

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>

장점:

이러한 옵션 중 선택은 특정 요구 사항에 따라 다릅니다.

  • 다시 시작: 이 접근 방식에는 추가 메모리가 필요하지 않지만 다시 시작할 때마다 생성기 값을 다시 계산해야 합니다.
  • 결과 저장: 이 옵션을 사용하면 재계산 없이 여러 번 반복할 수 있지만 생성기 값 수에 비례하여 메모리를 소비합니다.

본질적으로 메모리 사용량과 처리 시간 사이의 전형적인 상충 관계에 직면하게 됩니다. 둘 중 하나를 손상시키지 않고 발전기를 "되감기"하는 완벽한 솔루션은 없습니다.

위 내용은 Python 생성기를 여러 번 재사용하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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