[제로베이스_데이터 취업 스쿨] 스터디노트 09-1

박소현·2023년 8월 13일
0

데이터 공부

목록 보기
11/31

깊은복사했을 때의 메모리 주소 값

저번 문제를 풀었을 때 메모리 주소 값이 같게 나오는게 몇개가 보여서 질문을 했는데 답을 받아서 정리를 하고자 한다.

기존에 내가 적었던 코드

import copy
scores = [9, 8, 5, 7, 6, 10]
scoresCopy = []
/
for s in scores:
    scoresCopy.append(s)
/
print(f'id(scores): {id(scores)}')
print(f'id(scoresCopy): {id(scoresCopy)}')
/
scoresCopy.extend(scores)
print(f'id(scores): {id(scores)}')
print(f'id(scoresCopy): {id(scoresCopy)}')
/
scoresCopy = scores.copy()
print(f'id(scores): {id(scores)}')
print(f'id(scoresCopy): {id(scoresCopy)}')
/
scoresCopy = scores[:]
print(f'id(scores): {id(scores)}')
print(f'id(scoresCopy): {id(scoresCopy)}')
id(scores): 4375024896
id(scoresCopy): 4375023104 <- append
id(scores): 4375024896
id(scoresCopy): 4375023104 <- extend
id(scores): 4375024896
id(scoresCopy): 4375024960 <- copy
id(scores): 4375024896
id(scoresCopy): 4375023104 <- [:]

append, extend, 슬라이싱 3가지의 주소값이 같게 나온다.텍스트

첨삭받아 수정된 코드

import copy
scores = [9, 8, 5, 7, 6, 10]
scoresCopy = []
/
for s in scores:
    scoresCopy.append(s)
/
print(f'id(scores): {id(scores)}')
print(f'id(scoresCopy): {id(scoresCopy)}')
/
scoresCopy.extend(scores)
print(f'id(scores): {id(scores)}')
print(f'id(scoresCopy): {id(scoresCopy)}')
/
scoresCopy2 = scores.copy()
print(f'id(scores): {id(scores)}')
print(f'id(scoresCopy2): {id(scoresCopy2)}')
/
scoresCopy3 = scores[:]
print(f'id(scores): {id(scores)}')
print(f'id(scoresCopy3): {id(scoresCopy3)}')
id(scores): 4338128256
id(scoresCopy): 4338128128 <- append
id(scores): 4338128256
id(scoresCopy): 4338128128 <- extend
id(scores): 4338128256
id(scoresCopy2): 4338128320 <- copy
id(scores): 4338128256
id(scoresCopy3): 4338128512 <- [:]

사실 기존의 코드에서 크게 달라진 부분은 없다.
scoresCopy2, scoresCopy3 등으로 변수명을 바꿔준게 끝이다.

그 이유는,
기존 코드에서는 내가 동일한 변수를 사용했기 때문에 기존의 객체가 사라지면서 해당 id값이 공석이 되고, 이 부분을 새롭게 생성한 객체가 사용하게 되면서 주소 값이 같아보이게 되는 현상이 일어난 것이다!!!!!!!
OMG!!!
프로그래밍의 세계는 알면 알 수록 끝이 없는 듯 하다.
오늘도 또 하나의 의구심이 풀렸다.

📌 데이터 사이언스 직무 알아보기

https://zero-base.co.kr/event/media_insight_data_2

profile
아직은 모든게 무섭고 모르는거 투성이지만, 나중엔 멋진 으른이 되야지!

0개의 댓글