Python

[Python] 얕은복사, 깊은복사(shallow copy, deep copy)

2025. 4. 11. 16:43
목차
  1. <얕은복사(shallow copy)>
  2. <깊은복사(deep copy)>
  3. <야매깊은복사>

<얕은복사(shallow copy)>

a = [1,3,5]
b = a

print(b)

#[1,2,3]
#잘 복사가 된듯


a.append(7)

print(b)
#[1,3,5,7]
#배열a에 추가했는데 왜 배열b에 추가가 된것이여? 이게 머선일이고?

 

우리가 가끔 코딩테스트를 연습하다보면 만나는 실수다.

얕은복사를 했기 때문에 의도와 다른 저런 참사가 난다.

 

얕은복사를 할 경우 a,b의 두 변수는 같은 주소를 참조하고있기 때문이다.

독립적으로 사용하기위한 복사를 하려면 깊은복사를 해줘야한다

 

<깊은복사(deep copy)>

import copy

a = [1,3,5]
b = copy.deepcopy(a)

a.append(7)

print(b)

#[1,3,5]
#이젠 온전하게 b가 출력된다!

 

좀 귀찮지만 copy를 import해서 사용해야한다.

이젠 변수 a,b 를 독립적으로 사용할 수있다.

 

하지만 위의 방법은 막상 갑작스럽게 사용하려면 머리속에서 지워졌을 확률 97%

 

<야매깊은복사>

a = [1,3,5]
b = []
for i in a:
	b.append(i)
    
a.append(7)
print(b)

#[1,3,5]
#이지하구만

잘 된다.

우리가 잘 아는 for 문으로 그냥 일일히 넣어서 복사해주면된다.

deep copy방법 까먹었다고 import copy한다음 어? 나 까먹었다 이문제 못풀겠는데? 하지말고

이런식이라도 꾸역꾸역 해결하는 방법이있으니 포기하지 마시길.

 

'Python' 카테고리의 다른 글

[Python] input 입력받는 수 많은 방법(map, split)  (0) 2024.06.25
[Python] 파이썬 eval 함수 설명 및 예제  (0) 2023.06.22
  1. <얕은복사(shallow copy)>
  2. <깊은복사(deep copy)>
  3. <야매깊은복사>
'Python' 카테고리의 다른 글
  • [Python] input 입력받는 수 많은 방법(map, split)
  • [Python] 파이썬 eval 함수 설명 및 예제
끄적거리는수달
끄적거리는수달
끄적거리는수달
DevOtterHyun
끄적거리는수달
전체
오늘
어제
  • 분류 전체보기 (7)
    • 앱 (1)
      • Project (1)
    • 웹 (0)
      • Project (0)
    • React (2)
    • Kotlin (0)
    • Html & Css & Java Script (0)
    • Python (3)
    • 코딩테스트 (0)

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

최근 댓글

최근 글

hELLO · Designed By 정상우.
끄적거리는수달
[Python] 얕은복사, 깊은복사(shallow copy, deep copy)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.