본문 바로가기
파이썬

파이썬 발전기에서 한 항목 만 선택하는 방법은 무엇입니까?

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

다음과 같은 생성기 기능이 있습니다.

def myfunct():
  ...
  yield result

이 함수를 호출하는 일반적인 방법은 다음과 같습니다.

for r in myfunct():
  dostuff(r)

내 질문에, 내가 원할 때마다 생성기에서 하나의 요소 만 얻을 수있는 방법이 있습니까? 예를 들어 다음과 같이하고 싶습니다.

while True:
  ...
  if something:
      my_element = pick_just_one_element(myfunct())
      dostuff(my_element)
  ...

 

해결 방법

 

다음을 사용하여 발전기 만들기

g = myfunct()

아이템을 원할 때마다

next(g)

(또는 Python 2.5 이하에서는 g.next () ).

생성기가 종료되면 StopIteration 이 발생합니다. 필요한 경우이 예외를 포착하거나 next () default 인수를 사용할 수 있습니다.

next(g, default_value)

 

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

 

 

반응형

댓글