본문 바로가기
알아두면 쓸데없는 신비한 코드

python 에서 pop, del 하면 메모리 공간도 삭제 될까요?

by Django_ 2020. 5. 5.
반응형

이전 "파이써닉이 뭔가요?" 포스팅에서 같은 코드여도 성능이 달라질 수 있다는 이야기를 아주 조금 언급한게 생각나서 짧은 알쓸신코를 카테고리를 추가하였습니다~

위에 포스팅에서 언급했던 append()시에 메모리가 증가하는 부분입니다

동일한 데이터의 리스트라 하더라도 바이트수는 차이가 발생하는것을 확인하실 수 있습니다~

python append memory

그러다 문득 python에서 딕셔너리와 리스트에서 pop과 del을 사용하면 메모리도 지워지는지 궁금했습니다.

그래서 실험을 해봤습니다.

lst0 = [0,1,2,3,4,5] 
lst1 = [0,1,2,3,4,5] 
lst2 = [0,1,2,3,4,5] 
lst3 = [0,1,2,3,4,5] 


lst0 #base
lst1.pop(0) #pop
lst2.remove(0) #remove
del lst3[0] # del
lst0.clear() # base_clear 테스트


base=52 pop=52 remove=52  del=52 base_clear=28 

pop , remove, del을 해도 메모리에는 변화가 없었습니다.

clear해야 말끔하게 리스트를 비우는것 같습니다.

del lst

print(f'{sys.getsizeof(lst)}')



'''
이렇게 하면 어떻게 될까요~!?
'''

정답은

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'lst' is not defined

끝~

반응형

댓글