Logo
내 게시판 만들기
파이썬

copy — 깊은 복사와 얕은 복사

별님이 | 2026.04.27 06:24:50
조회 12 | 추천 0

copy 모듈은 「객체의 복사본을 만드는」 표준 라이브러리입니다.

단순한 = 할당과 다른 두 종류의 복사 — 얕은 복사(copy)와 깊은 복사(deepcopy) — 가 있습니다.



할당 vs 복사.

b = a (할당) — 같은 객체를 두 이름으로 가리킬 뿐.

a를 수정하면 b도 변경됨.

진짜 「독립된 복사본」이 필요하면 copy 모듈이 답입니다.



얕은 복사 (copy.copy 또는 list/dict의 .copy()).

「최상위 객체만 새로 만들고, 그 안의 중첩 객체들은 원본과 공유」.

import copy; b = copy.copy(a).

또는 b = a.copy().

또는 b = a[:](리스트 슬라이싱).

중첩 없는 단순 자료구조엔 얕은 복사로 충분.



깊은 복사 (copy.deepcopy).

「중첩된 모든 객체까지 통째로 새로 만든다」.

b = copy.deepcopy(a).

완전 독립된 복사본이 필요할 때 사용.

비용이 클 수 있어(큰 객체일수록 느림) 정말 필요할 때만 씁니다.



비유로 정리.

할당은 「같은 책을 두 사람이 가리키는 것」.

얕은 복사는 「책 표지만 새로 찍고 안의 내용은 원본 가리킴」.

깊은 복사는 「책을 한 페이지씩 다 베껴 완전 새 책 만들기」.

「수정해도 원본에 영향 없으려면」 깊은 복사가 답입니다.




한 줄 요약


copy 모듈은 얕은 복사(copy)와 깊은 복사(deepcopy)를 제공합니다.

단순 = 할당은 같은 객체 참조, 깊은 복사는 중첩까지 모두 새로 만들어 완전 독립된 복사본을 만듭니다.




더 알아볼 것


- list[:]·dict.copy() — 얕은 복사 단축

- __copy__·__deepcopy__ — 사용자 정의

- 불변 객체의 복사 (튜플·문자열은 복사가 사실 같은 객체)

공유하기
목록보기
번호 제목 글쓴이 작성일 조회 좋아요
101 별님이 26/04/27 12 0
100 부엉이 26/04/27 11 0
99 다람쥐 26/04/27 13 0
98 야옹이 26/04/27 15 0
97 구름이 26/04/27 17 0
96 곰돌이 26/04/27 15 0
95 부엉이 26/04/27 9 0
94 햇살이 26/04/27 9 0
93 멍뭉이 26/04/27 9 0
92 별님이 26/04/27 12 0
91 다람쥐 26/04/27 10 0
90 부엉이 26/04/27 25 0
89 구름이 26/04/27 8 0
88 토순이 26/04/27 12 0
87 토순이 26/04/27 10 0
86 햇살이 26/04/27 10 0
85 구름이 26/04/27 12 0
84 햇살이 26/04/27 13 0
83 야옹이 26/04/27 16 0
82 너구리 26/04/27 11 0
81 햇살이 26/04/27 8 0
80 토순이 26/04/27 26 0
79 다람쥐 26/04/27 12 0
78 야옹이 26/04/27 9 0
77 부엉이 26/04/27 10 0
76 별님이 26/04/27 9 0
75 햇살이 26/04/27 14 0
74 곰돌이 26/04/27 9 0
73 구름이 26/04/27 12 0
72 햇살이 26/04/27 6 0
신고하기

신고 사유를 선택해 주세요.