-4일차- 제너레이터,  딕셔너리의 copy
23년 이전 글/모두의연구소 아이펠

-4일차- 제너레이터, 딕셔너리의 copy

많은 내용을 배우지만 그중에서도 중점으로 알고 써먹어야 할 것 같은

내용을 다루려고 한다

제너레이터란?

파이썬에서는 함수내에서 yield라는 명령어를 통해서 제너레이터를 생성할 수 있다

이는 iterator를 생성하는 것인데, 보통 for 문으로 반복문을 생성시에 

반복문에 해당하는 모든 값을 메모리에 올려놓고 계산하기 마련인데,

일반적인 상황에서는 이게 괜찮지만 요즘은 폭발적인 데이터를 다루는 시대다

하드디스크가 아닌 램에 빅데이터를 모두 얹어놓고 잘못 시작했다간 램이 폭주하는

모습을 볼 수 있다

제너레이터는 이러한 상황을 막아준다

 

제너레이터를 안쓸 때

터지기 직전
baam

제너레이터를 쓸 때

눈 깜짝할 사이

여기에서 말하는 바는 성능의 차이라기 보다는

test2는 램에 올려지지 않은 채 대기하고 있었기 때문에 속도가 빠른 것처럼 느껴질 수 있다

test2를 사용할 때에는 한번에 사용하면 메모리 부족으로 프로그램이 종료될 수 있기

때문에 적당히 나눠서 사용하여야 한다

 

딕셔너리의 커피(?)

객체가 이름만 다를 때, 그리고 중첩된 딕셔너리의 copy에 대한 설명을 담은 코드를 작성해보았다

 

 

 

 

 

해당 코드를 실험하면서 느낀 교훈은 역시 객체를 확실히 분리해야 한다는 것!

반응형