리스트를 반복하여 사용할때 리스트를 메모리에 저장하지않고. 리스트를 생성과 동시에 사용하는 것을 말함.
동일한 결과
# 일반적인 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
return은 list라는 변수에 [x for x in range(1,4)] 코드의 결과물인 리스트가 저장이 되고 그저장된 list객체를 다시 for문을 통과해 반환한다.
yield는 list라는 변수에 [x for x in range(1,4)] 코드의 결과물인 리스가 저장되지않고 코드가 for문을돌며 리스트를 생성해내는 동시에 아래 for문이 바로 실행되어 반환한다.