코딩코딩코딩

파이썬 list copy 본문

파이썬/문법

파이썬 list copy

hanshow113 2020. 7. 21. 13:14

- 단순 복사는 복사된 데이터에 변형을 주면 원본데이터에도 변형이 일어납니다.

- 얕은 복사는 2차원 리스트를 예로 들었을 때, 단순 값으로 배정된 원소의 경우 원본데이터에 영향을 미치지 않지만

2차원 리스트 내에 있는 원소에 변형을 줄 경우 원본데이터에 영향을 미칩니다. 2차원 원소의 경우 리스트 형태만 복사했다고 생각하면 됩니다.

- 깊은 복사는 얕은 복사에서 원본데이터에 영향을 주었던 2차원 원소 역시도 복사가 되어 전혀 영향을 주지 않습니다.

 

 

예제 코드 >

 

 

1. 단순 복사

x = [1,2,3]
y = x
print(y)
# [1,2,3] 출력

y[2] = 300
print(x,y)
# [1,2,300],   [1,2,300] 출력

 

 

2. 얕은 복사

a = [4,[1,2,3],6]  # 2차원 리스트
b = copy.copy(a)

print(b)
# [4,[1,2,3],6] 출력

b[2] = 600

print(b)
# [4,[1,2,3],600] 출력

print(a)
# [4,[1,2,3],6] 출력

c = copy.copy(a)
c[1].append(4)

print(c)
# [4,[1,2,3,4],6] 출력

print(a)
# [4,[1,2,3,4],6] 출력

 

 

3. 깊은 복사

z = [1,[7,8]]
y = copy.deepcopy(z)

print(y)
# [1,[7,8]] 출력

y[0] = 100
y[1].append(9)

print(y)
# [100, [7,8,9]] 출력

print(z)
# [1,[7,8]] 출력
Comments