본문 바로가기
Python

파이썬 중급 #073 리스트 - 복사(shallow copy)에 대한 이해

by Smart Factory in 2020 2022. 5. 19.
728x90
반응형

안녕하세요. 스마트 팩토리입니다. 
파이썬 중급 #073 리스트 - 복사(shallow copy)에 대한 이해를 해 보도록 하겠습니다. 

1. 리스트 복사(shallow copy)

-얕은 복사 
-리스트 복사는 리스트 변수요소값이 있는 주소를 받아서 가리키는 것
- 복사본에서 리스트 요소를 변경시 원본도 변경되는 경우 

코드를 보면서 알아보겠습니다. 

nums=[]
for i in range(1,6):
    nums.append(i)
print("nums :",nums)
cnums=nums
print("cnums :",cnums)

nums 를 먼저 생성하고 이후 nums를 cnums에 대입하였습니다. 일반적인 복사의 개념으로 볼 수 있습니다. 하지만 여기서는 두 리시트 변수가 가리키고 있는 주소값이 동일한 것입니다. 

nums.append(7)
print("nums :",nums)
print("cnums :",cnums)

nums에 요소 7을 넣어주면 복사본인 cnums 값도 변경되는 것을 볼 수 있다.


cnums.append(10)
print("nums :",nums)
print("cnums :",cnums)

같은 방법으로 복사본인 cnums 값에 요소값을 추가하여도 nums 값이 변경되는 것을 볼 수 있다. 

이는 말그대로 복사본이긴 하지만 독립적이지 않은 복사본으로 볼 수 있다. 

nums=[]
for i in range(1,6):
    nums.append(i)
print("nums :",nums)
cnums=nums
print("cnums :",cnums)

nums.append(7)
print("nums :",nums)
print("cnums :",cnums)
cnums.append(10)
print("nums :",nums)
print("cnums :",cnums)
728x90
반응형

댓글