출처 : 윤성우의 열혈 파이썬 : 중급
10. generator 표현식
하나의 문장으로 generator를 구성하는 방법
- generator 함수 & generator 표현식
- generator 표현식은 generator 함수와 마찬가지로 generator 객체를 생성하는 방법이다
- generator 표현식의 문법 구성이 list 컴프리헨션과 거의 같다
def show_all(s):
for i in s:
print(i, end = ' ')
st = [2 * i for i in range(1, 10)]
show_all(st)
def times2():
for i in range(1, 10):
yield 2 * i
g = times2()
show_all(g)
g = (2 * i for i in range(1, 10))
show_all(g)
- generator 표현식은 괄호만 [] -> ()으로 바뀌었을 뿐, 그 안을 채우는 방법은 list 컴프리헨션과 같다
- 이를 generator 표현식이라 한다
g = (2 * i for i in range(1, 10))
next(g) # 2
next(g) # 4
- 역시 lazy evaluation
generator 표현식을 직접 전달하기
def show_all(s):
for i in s:
print(i, end = ' ')
show_all((2 * i for i in range(1, 10)))
# 다음과 같이 소괄호를 생략할 수 있다
show_all(2 * i for i in range(1, 10))
'프로그래머 > Python' 카테고리의 다른 글
[윤성우의 열혈 파이썬 중급편] 12. named tuple (0) | 2020.12.15 |
---|---|
[윤성우의 열혈 파이썬 중급편] 11. 튜플의 패킹과 언패킹 (0) | 2020.12.15 |
[윤성우의 열혈 파이썬 중급편] 09. generator 함수 (0) | 2020.12.15 |
[윤성우의 열혈 파이썬 중급편] 07. map & filter (0) | 2020.12.15 |
[윤성우의 열혈 파이썬 중급편] 06. 객체처럼 다뤄지는 함수 그리고 람다 (0) | 2020.12.15 |