a = [1, 2, 3, 4]
b = [5, 6, 7, 8]
a = b # 얕은 복사(주소 같음)
print("a의 주소:", id(a))
print("b의 주소:", id(b))
b = [100, 100, 100, 100] # b를 새로운 객체로 대체하면
print("a:", a)
print("a의 주소:", id(a)) # a의 값에는 영향이 없고,
print("b의 주소:", id(b)) # b는[100, 100, 100, 100] 이라는 새로운 객체를 가리킴
# 평범한 shallow copy를 보여주는 예
a = b
b[0] = 0
print(a)
a = b를 하면, a -> b -> [리스트]가 아니라
a -> [리스트] <- b 가 되므로,
b에게 다른 값을 넣어도
a -> [리스트]
b -> [다른리스트]
가 되는 거다.
'알고리즘 > 그외중요한것들' 카테고리의 다른 글
완주하지 못한 선수 (Python) (0) | 2020.07.03 |
---|---|
2252번. 줄 세우기 (0) | 2020.05.11 |
2003번. 수들의 합 2 (0) | 2020.03.30 |