공원 산책 - python copy

Chan·2023년 3월 28일
0

CodingTest

목록 보기
1/1
post-thumbnail

Copy

파이썬에서 일반적으로 복사할 때 나는 다음과 같이 복사를 했다.

listA = [1,2,3]
listBeforeA = listA

그리고 listA를 해당 코드 이후에 업데이트를 한다면 listBeforeA에는 해당 내용이 반영이 되지 않는다고 생각을 했다.

즉 다른 메모리에 해당 코드가 존재를 한다고 생각하고 코딩테스트를 진행을 하던 중 listA에 업데이트 된 내용이 listBeforeA에도 반영이 된다는 사실을 깨달았다.

해당 이유는 다음과 같다.

list A와 listBeforeA가 같은 메모리 주소를 공유를 하고 있기 때문에 listA에서 변경된 요소가 listBeforeA에도 똑같이 반영이 되는 것이었다.

즉 얕은 복사가 일어났다.

그럼 해당 오류를 해결해야 한다면 어떻게 해야 할까?

listA = [1,2,3]
listBeforeA = listA.copy()

다음과 같이 copy를 쓴다면 listA에 새로운 요소가 업데이트가 돼도 listBeforeA에는 반영되지 않는다.

0개의 댓글