이전 글에서 copy() 함수를 다루는 중 얕은 복사, 깊은 복사를 언급했었다.
이 두 단어에 대해 자세하게 알아보자.
얕은복사의 예시
a = [0,3,6,9]
b = a
del b[0]
del b[-1]
print(a)
print(b)
위의 코드를 통해 값이 어떤식으로 변환되는지 알아보자.

1,2 번째 줄을 실행한 결과이다.
a와 b가 동일한 list를 참조하고 있는 것을 확인할 수 있다.
즉, b라는 함수가 리스트에 연결된 길을 하나 더 추가해준 개념!
b에서 첫번째 인덱스와 마지막 인덱스를 삭제하는 코드를 작성하면 결국 연결된 list에서 삭제가 진행됨으로 a의 값도 변경 된다.
깊은 복사의 예시
a = [0,3,6,9]
b = a.copy()
del b[0]
del b[-1]
print(a)
print(b)
위의 코드를 통해 값이 어떤식으로 변환되는지 알아보자.

1,2 번째 줄을 실행한 결과이다.
b 함수에서 a의 값을 copy() 함수를 통해 가져왔기 때문에
동일한 레퍼런스를 가지고 있지만, 다른 주소를 가지고 있다.
때문에 b에서 삭제를 진행해도 a의 list는 변함이 없다.