슬라이싱을 이용해 깊은 복사를해도 원래 이런가요?
c = [[1, 2], [3, 4]]
d = c[:]
c[0] = [5, 6]
c[1][0] = 7
print(c)
print(d)
print('%s, %s, %s' % (c is d, c[0] is d[0], c[1] is d[1])
이게 False False True 가 나오던데 왜 이런건지 모르겠습니다..
syd060978 님 263
2021년 1월 14일 8:35 오후
1개의 답변이 있습니다. 1 / 1 Page
d = c[:] 는 깊은 복사가 아니라 얕은 복사입니다.
깊은 복사는 from copy import deepcopy 처럼 deepcopy 를 사용하셔야 해요.
깊은 복사와 얕은 복사의 차이를 알고 계신다면 결과가 저렇게 나오는 것도 이해가 되실 겁니다.
박응용 님
2021년 1월 15일 4:12 오후