[Python] 얕은 복사, 깊은 복사

유얌얌·2024년 9월 3일

알고리즘

목록 보기
20/25

기본적으로 파이썬에서 리스트 복사는 얕은 복사

얕은 복사

old_lst = [1, 2, 3]
new_lst = old_lst

print(new_lst)  # [1, 2, 3]

new_lst[0] = 99
print(old_lst)  # [99, 2, 3]

리스트를 단순 할당하게 되면 같은 리스트 객체를 참조하여, 동일한 메모리 주소를 공유하게 됨

깊은 복사

두 리스트가 서로 독립적인 객체가 되길 원한다면 깊은 복사를 해야함

import copy

old_lst = [1, 2, 3]
new_lst = copy.deepcopy(old_lst)

new_lst[0] = 99
print(old_lst)  # [1, 2, 3]
print(new_lst)  # [99, 2, 3]

서로 다른 객체를 참조하므로, 한 리스트의 변경이 다른 리스트에 영향을 미치지않음!

profile
조금씩이라도 꾸준하게

0개의 댓글