Python generator

Nicholas·2022년 4월 30일
0

Python

목록 보기
30/31

1. genrator란?

리스트를 반복하여 사용할때 리스트를 메모리에 저장하지않고. 리스트를 생성과 동시에 사용하는 것을 말함.

2. 예

동일한 결과

# 일반적인 for문을 이용한 리스트 만들고 리스트를 활용한 수식
list = [x for x in range(1,4)]

for i in list:
	return i * 2
    
>>> 2
    4
    6
# 리스트를 generator을 활용한 수식
list = [x for x in range(1,4)]

for i in list:
	yield i * 2
    
>>> 2
    4
    6

두개의 코드 중 다른점
1. return과 yield

3. return과 yield

위 코드에서 return과 yield의 역할

return은 list라는 변수에 [x for x in range(1,4)] 코드의 결과물인 리스트가 저장이 되고 그저장된 list객체를 다시 for문을 통과해 반환한다.

yield는 list라는 변수에 [x for x in range(1,4)] 코드의 결과물인 리스가 저장되지않고 코드가 for문을돌며 리스트를 생성해내는 동시에 아래 for문이 바로 실행되어 반환한다.

4. genrator를 사용하는 이유

  1. 변수에 객체를 할당해주지않고 바로 실행됨으로 메모리를 절약해준다.
  2. 동작시간이 줄어든다.
profile
WEB Developer

0개의 댓글