티스토리 뷰

반응형

 

얕은 복사의 경우와

깊은 복사의 경우를

알아보자.

 

 

 

1. 얕은 복사(swallow copy)

 

1
2
3
4
5
scores1 = [1020304050]
values1 = scores1
 
print("scores1 : ", scores1)
print("values1 : ", values1)
cs

 

 

 

  - 1. 결과  

 

 

 

  - 1. 설명  

list scores1에

점수를 넣어주었고,

values1 = scores1로

values1에 scores1의

내용을 복사하였다.

 

하지만 이것은 얕은 복사이다.

얕은 복사라고 하는 이유를

파이썬 튜터를 통해 알아보자.

 

 

 

 

 

values1 = scores1를 했는데,

이는 scores1 리스트를

values1도 그저 같이

가리킬 뿐이다.

즉 scores1의 별칭이 되는 것이다.

 

위와 같은 것을

얕은 복사라고 한다.

 

 

 

 

 

 2. 깊은 복사 

 

1
2
3
4
5
6
7
8
9
from copy import deepcopy
 
scores2 = [1020304050]
values2 = deepcopy(scores2)
 
values2[4= 99
 
print("scores2 : ", scores2)
print("values2 : ", values2)
cs

 

 

 

  - 2. 결과  

 

 

 

  - 2. 설명  

deepcopy() 내장 함수를 사용하여

리스트를 받아 

복사본을 생성하여 반환하면

깊은 복사가 된다.

 

 

 

 

 

 

values2[4] = 99를 하면

아래와 같이 바뀐다.

 

 

-

 

 

이외에도 

values2 = list(scores2)와 같이

list() 내장 함수를 이용해도

위와 같은 결과가 출력된다.

 

 깊은 복사 란,

리스트가 같은 곳을 가리키지 않고

리스트를 받아

복사본을 생성하여

하나의 새 리스트가 

반환되는 것이다.

반응형
댓글
반응형
Recent Post.
Recent Reply.
Thanks for comming.
오늘은
명이 방문했어요
어제는
명이 방문했어요