Python yield & generator

lightcat·2022년 8월 9일
0
  • Generator 반환

  • 여러번 반환가능

  • Generator

    • 여러 개의 데이터를 미리 만들어 놓지 않고 필요할 떄마다 즉석해서 하나씩 만들어낼 수 있는 객체
    • 결과값을 나누어서 얻을 수 있기 때문에 성능 및 메모리 효율 측면에서도 큰 이점.
    • return은 모든 결과값을 메모리에 올려놓음
    • yield는 결과값을 하나씩 메모리에 올려놓음
  • 무한데이터 생산가능

    • yield로 편리하게 무한한 데이터 제공 가능.
    def yield_infinite_abc():
      while True:
        yield "A"
        yield "B"
        yield "C"
  • List to Generator
    • yield from 사용
	def yield_abc():
  		yield from ["A", "B", "C"]
  • Generator Comprehension
    • ( ) 소괄호를 사용하여 제너레이터 생성
	abc = (ch for ch in "ABC")

	print(abc)

	for ch in abc:
  		print(ch)
	-----------------------
	<generator object <genexpr> at 0x7f2dab21ff90>
	A
	B
	C

참조 링크 : 파이썬의 yield 키워드와 제너레이터(generator)

0개의 댓글