반응형

안녕하세요 HiCreate입니다!!

오늘은 객체의 복사에 대해서 포스팅해보겠습니다.

 

객체의 복사라는 것은 어떤 변수를 다른 변수 안에 다시 선언해버리는 건데요.

 

1
2
3
= 1
= a
print(b)
cs

이런 코드가 있으면

이런 방식으로 됩니다.

즉 a의 값이 곧 b의 값이 됩니다.

a의 값이 변할 때마다 b의 값도 계속 변하는 거죠

이런 걸보고 copy라고 합니다.

 

copy는 정수나 문자 뿐만아니라 리스트에서도 작동합니다.

1
2
3
4
5
6
7
8
9
10
11
12
>>> a = [1,2,3]
>>> b = [a,4,5]
>>> x = [a,b,6,7]
>>> y = x
>>> print(a)
[123]
>>> print(b)
[[123], 45]
>>> print(x)
[[123], [[123], 45], 67]
>>> print(y)
[[123], [[123], 45], 67]
cs

이런 식으로 작동합니다.

 

이런 방식외에 copy모듈을 이용하기도 합니다.

import copy로 불러와서 사용하는데요

여기에는 얕은 복사와 깊은 복사가 있습니다.

 

먼저 얕은 복사란

복사한 객체가 별도의 리스트 객체를 갖는 겁니다.

대신 내용은 원래 내용을 그대로 하죠.

 

깊은 복사는 별도의 객체를 만들지만 복사할 대상을 통째로 복사해버립니다.

 

사용은 다음과 같이합니다.

1
2
3
4
5
6
7
import copy
= [70,80,90]
= [1,2,3,a]
= copy.copy(x) //얕은 복사
print(y)
= copy.deepcopy(x) //깊은 복사
print(z)
cs

같은 결과가 나오겠지만 방식이 다르다는 것만 아시면 됩니다.

그럼 다음 포스팅에서 뵙겠습니다!!

반응형

BELATED ARTICLES

more