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

+ Recent posts