생활
파이썬 리스트를 삭제하지 않으면 메모리에 계속 남아있나요 ???
order_list= ['치약', '비누', '화장지] for i in order_list: save_list = [] save_list.append(i)이런 식으로 for문으로 순회하면서 save_list를 생성하고 사용하는데요. save_list가 for문 한번 실행될 때마다 메모리에서 생성되고 삭제 되는 게 아닌가요?
위의 예처럼 작은 경우는 상관없는데 데이터가 많아지면 memory error가 뜹니다.
저는 save_list가 for문 한번 끝나면 자동으로 삭제되서 메모리 반환 되고 다시 생성된다고 생각했거든요.
그게 아니고 메모리에 남아있는 건지 궁금합니다.
그리고 만약에 메모리에 남아 있다고 하면 아래 코드처럼 하면 되는지 질문 드립니다.
del save_list1개의 답변이 있어요!
리스트 내용을 지우면 데이터만 지워지고 메모리에 리스트 공간이 남아있어, del 명령어로 리스트 자체를 지워야 합니다.
말씀하신 대로 del save_list 하면 됩니다.
이해를 돕기 위해, 구체적인 예를 들어 보았습니다.
리스트안의 내용을 지울때(리스트를 비어있는채로 만들때)는 다음과 같이 사용합니다.
list = [1, 2, 3, 4, 5] del list[:] # list 안의 데이터만 삭제리스트 자체를 메모리에서 지우고자 할때는
del list # 리스트 자체를 삭제list 이름 뒤에 [:]를 붙이는것과 안붙이는것에 차이를 주의하세요.