Script/Python

09. Shallow copy & Deep copy

삽질의 달인 2020. 1. 15. 07:50
파이썬은 C#, Java 처럼 해당 자료형의 클래스를 만들고 이를 레퍼런스로 가지고 있기 때문에
 
변수간에 복사를 하면 값 복사가 일어나는 것이 아니라 참조복사가 일어난다.
 
따라서 값을 복사해 사용하고자 한다면 copy 모듈을 임포트 한 다음 deepcopy 함수를 사용해야 한다.
 
import copy
 
a = [1,2,3]
b = a
c = copy.deepcopy(a) # deep copy
 
a[0]= 38
 
print (a) # [38, 2, 3]
print (b) # [38, 2, 3]
print (c) # [1, 2, 3]