"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Python에서 생성기 개체를 재설정하는 방법은 무엇입니까?

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

2024-11-09에 게시됨
검색:274

How to Reset a Generator Object in Python?

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

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

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

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

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

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

y = FunctionWithYield()
for x in y: 
    print(x)
y = FunctionWithYield()
for x in y: 
    print(x)

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

y = list(FunctionWithYield())
for x in y: 
    print(x)
# Can iterate again:
for x in y: 
    print(x)

이러한 옵션 중 선택은 프로그램의 특정 요구 사항에 따라 다릅니다. 옵션 1은 소형 생성기의 경우 더 효율적이거나 생성기 기능을 다시 실행하는 경우 계산 비용이 많이 들지 않습니다. 옵션 2는 결과를 메모리에 저장할 수 있는 대규모 생성기에 더 적합합니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3