PYTHON

[python3] 8. Generator(제너레이터)

힙꾸 2021. 3. 8. 18:04
728x90
반응형

1. generator 생성 및 사용

 

 1) 생성

 

def get_num():
    n = 0
    while True:
        n += 1
        yield n

print(get_num())

>>> <generator object get_num at 0x0000022960C3A648>

 

 

 2) 사용

 

g = get_num()

next(g)
next(g)
next(g)

>>> 1
>>> 2
>>> 3

 

 

 

2. 대표적 함수 

 

 - range()

 

 

 

2. Generator  vs  Array

 

 - 제너레이터 : 한 번 사용할 수 있는 루프(Object). 사용할 때 생성

 - Array : 메모리에 생성해두고 사용

 

# Array
# 이미 생성된 값이 들어가 있음.
arr = [n for n in range(1000)]

# Generator
# 생성해야 함. (생성은 next())
gner = range(1000)


# 길이 비교 (길이 같음)
print(len(arr))
>>> 1000

print(len(gner))
>>> 1000


# 메모리 비교 (메모리 크기 제너레이터가 훨씬 작음)
import sys

sys.getsizeof(arr)
>>> 9024

sys.getsizeof(gner)
>>> 48
728x90
반응형