반응형
https://crackerjacks.tistory.com/14
파이썬 (Python) - 깊은 복사 (Deep Copy)
파이썬 (Python) - 깊은 복사 (Deep Copy) 알고리즘을 풀다 보면 원본배열의 보존을 위해 배열을 복사할 필요를 느낄때가 많다. 객체를 무작정 복사해서 사용하면 원본 객체가 핸들링되어 데이터가 변
crackerjacks.tistory.com
알고리즘 문제를 풀다가 얕은 복사 깊은 복사 때문에 값이 완전히 달라져서 찾아서 공부하게 되었다.
파이썬에서 포인터 같은 개념으로 mutable(변동 가능한)자료형을 복사하면, 변수는 변동 가능한 값의 주소값을 참조하여 원본이 변하면 복사한 변수 역시 원본과 같이 변한다. (얕은 복사)
그러나 inmutable한 자료를 복사하면 값을 변동하지 않으면 둘이 같은 주소값을 가지지만, 둘 중 하나라도 값을 바꾸면, inmutable한 값이 바뀌었으니 같은 주소값을 가지지 못하고 변하게 되어 독립된 객체로 남게 되는 것이었다.
그렇다면 리스트,set과 같은 mutable한 자료형을 얕은 복사 하지 않고 깊은 복사를 하기 위해서는 모듈을 사용하거나, 슬라이싱, for문으로 탐색 후 복사와 같은 방법으로 독립된 객체를 만들 수 있다.
반응형
'과거의 유산들 > python' 카테고리의 다른 글
for a,b in 이중 리스트 (0) | 2022.07.17 |
---|---|
파이썬 fstring,문자와 데이터 같이 넣기 (0) | 2022.06.28 |
전역변수 (0) | 2022.06.11 |
collections.Counter (0) | 2022.04.23 |
range 역순을 할때 (0) | 2022.04.19 |