yield
파이썬의 yield 키워드와 제너레이터(generator)
Engineering Blog by Dale Seo
www.daleseo.com
def yield_abc():
yield "A"
yield "B"
yield "C"
for ch in yield_abc():
print(ch)
'''
A
B
C
'''
- return 키워드를 사용할 때는 모든 결과 값을 메모리에 올려놓는다
- 반면, yield 키워드를 사용할 때는 결과 값을 하나씩 메모리에 올려놓는다.
- -> 결과값을 나누어서 얻을 수 있기 때문에 성능 측면에서 큰 이점
- for 루프로 돌려보면 1초 후에 A를 출력되고, 또 1초 후에 B를 출력되고, 또 1초 후에 C가 출력
import time
def yield_abc():
for ch in "ABC":
time.sleep(1)
yield ch
# 1초 경과
A
# 1초 경과
B
# 1초 경과
C
yield from
- yield from를 사용하면 리스트를 바로 제너레이터로 변환
def yield_abc():
for ch in ["A", "B", "C"]:
yield ch
- 위 코드를 아래 코드로 표현 가능
def yield_abc():
yield from ["A", "B", "C"]
'코딩테스트 > Python 개념' 카테고리의 다른 글
| [Python] 리스트 값 한번에 출력하기 (0) | 2023.03.25 |
|---|---|
| [Python] 일급 객체 (0) | 2023.03.19 |
| [Python] 튜플(tuple) (0) | 2023.03.05 |
| [Python] 입력 주의사항 (0) | 2023.03.03 |
| [Python] 약수, 제곱근 개념 (0) | 2023.02.25 |