본문 바로가기
Programming Language/Python

[python] 파이썬 - 리스트의 객체 복사 개념 - 예시

by ggyongi 2021. 4. 5.
반응형

파이썬은 모든 것이 객체다. 숫자, 문자까지도 객체다. 

숫자, 문자가 리스트, 딕셔너리 같은 객체와의 차이점이라면 불변 객체라는 차이뿐이다.

그러다 보니 별도로 값을 복사하지 않는 한, 변수에 값을 할당하는 모든 행위는 값 객체에 대한 참조가 된다.

즉, 참조가 가리키는 원래의 값을 변경하면 모든 참조, 즉 모든 변수의 값 또한 함께 변경된다. 

 

다음 예시를 보면 쉽게 이해가 간다.

b는 a를 참조하고 있기 때문에 a가 변경되면 b도 같이 변경된다.

반면 값 자체만을 복사하는 방법으로 [:] 또는 copy()를 사용하게 되면, a가 변경되어도 c와 d는 변경되지 않는다.

>> a = [1,2,3]
>> b = a
>> c = a[:]
>> d = a.copy()

>> a += [4]

>>print(a, b, c, d)
[1,2,3,4] [1,2,3,4] [1,2,3] [1,2,3]

>>print(id(a),id(b),id(c),id(d))
1643118394880 1643118394880 1643118681216 1643118681280
 

비전공자 네카라 신입 취업 노하우

시행착오 끝에 얻어낸 취업 노하우가 모두 담긴 전자책!

kmong.com

댓글