반응형
1. 얕은 복사(shallow copy)
a = {'name' : 'Kim', 'age' : 18}
b = a
b['name'] = 'Choi'
print('b:', b)
print('a:', a)
바로 할당을 할 시 얕은복사가 일어난다.
==로는 deep copy와 shallow copy를 구분할 수 없다. is함수를 써야 완전히 같은지 비교할 수 있다. is의 리턴값이 True일 경우 완전히 같은 값이다.
2. 깊은 복사(Deep copy)
1) import copy
import copy
a = {'name' : 'Kim', 'age' : 18}
c = copy.deepcopy(a)
c['name'] = 'Choi'
print('c:', c)
print('a:', a)
2) import json
import json
deep = json.loads(json.dumps(array)) # json.dumps : object -> string, json.loads : string -> object
object -> string -> obejct의 방식으로 문자열로 한번 바꾸고 다시 obejct로 바꾸는 방식으로 깊은복사를 수행한다.
3. Deep copy check : 'is'
==로는 값이 같은지만 확인하고 is로는 완전히 같은 인스턴스인지를 비교할 수 있다. 깊은복사 확인은 is로 할 수 있다.
반응형
'Development > Python' 카테고리의 다른 글
[Python] 내장함수 id() (0) | 2020.10.06 |
---|---|
(Python) if __name__ == "__main__"이란 무엇인가 (0) | 2020.10.06 |
Python. windows cmd python console clear; 윈도우 cmd 화면에서 python 콘솔 초기화하는법 (0) | 2020.08.12 |
tuple : common sequence datatype (0) | 2020.07.13 |
list : common and mutable sequence datatype (0) | 2020.07.13 |