[기초 파이썬 -01] 리스트의 복사

파이썬에서 리스트의 복사는 다음과 같이 가능하다. 

복사된리스트명 = 복사할리스트명[:]

A = [1, 2, 4, 5]
B = A[:]
A.extend([6,7])

print(A)
print(B)

print(id(A))
print(id(B))

(결과)
[1, 2, 4, 5, 6, 7]
[1, 2, 4, 5]

2035665324680
2035664344584

위의 코드를 보면 a 리스트를 b라는 변수에 복사를 하고 나서 a에는 [6,7]을 추가 했다. 다음 a, b 두개의 변수를 모두 출력해 보면 안에 원소값이 달라짐을 알 수 있다. 

대비되는 코드를 한번 보면 더 잘 이해가 될 것이다. 

a = [1, 2, 4, 5]
b = a
a.extend([6,7])
print(a)
print(b)

print(id(a))
print(id(b))

[1, 2, 4, 5, 6, 7]
[1, 2, 4, 5, 6, 7]

2035665489672
2035665489672

위와같이  b = a를 하면 a의 위치값을 b에 저장하는 것일 뿐이기 때문에 a의 값이 변화하면 b값도 변화하게 된다.  좀 더 정확하게 이해하기 위해서 현재 확인하고자 하는 변수의 주소를 알수 있는 id()로 확인해 보면 동일 주소를 가리키고 있음을 알 수 있다. 

댓글

Designed by JB FACTORY