제너레이터란?
- 지연 평가 구현체(lazy evaluation) 즉, 값이 필요할 때 계산해주는 객체이다.
- 파이썬의 모든 지연 평가 구현체(lazy evaluation)는 이터레이터라고 한다.
- 이터레이터를 만드는 도구이다.
- 데이터 변환시
return이 아닌 yield를 사용한다. - 컴프리헨션을 괄호에 넣어 생성한다.
- for in 이나 next( ) 호출로만 접근 할 수 있다.
제너레이터 사용법
1.for in
lyrics = ['멋대로', '낸', '편견은', '토할', '거', '같지']
gen = ('*'+i for i in lyrics) #여기를 ( )로 닫아주면 제너레이터로 인식
for g in gen:
print(g)
2.yield : 함수 안에 yield를 사용하면 제너레이터로 인식한다.
def gen():
yield '원하면'
yield '감히'
yield '뛰어들어'
for i in gen():
print(i)
https://winterakoon.tistory.com/63
컴프리헨션(Comprehension)
컴프리헨션이란? 압축해서 한 줄 짜리 코드로 만드는 것인데 이유는 이것이 더 직관적이고 속도가 빠르기 때문이다. 컴프리헨션에는 리스트, 딕셔너리, 셋(튜플) 형태가 있다. 1. 기본 형태 : 리
winterakoon.tistory.com
https://winterakoon.tistory.com/64
이터레이터(Iterator)
이터레이터 특징 반복 가능한 객체(iterable)를 반복시키는 객체를 말한다. next( ) 함수 호출 시 순서대로 다음 값을 리턴할 수 있는 객체이다. iterable 객체의 길이를 초과하여 next( ) 함수로 이터레
winterakoon.tistory.com
'Python' 카테고리의 다른 글
[Python] 자주 사용되는 모듈 및 패턴 (0) | 2023.03.22 |
---|---|
[Python] 파일과 디렉토리 다루기 (0) | 2023.03.22 |
[Python] 이터레이터(Iterator) (0) | 2023.03.22 |
[Python] 컴프리헨션(Comprehension) (0) | 2023.03.22 |
[Python] 패킹과 언패킹 (1) | 2023.03.22 |