본문 바로가기
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

📘 비전공자 개발자 취업 성공기 시리즈

개발자가 되고 싶었던 한 비전공자의 1년 4개월 이야기
막막했던 시작부터 좌절, 그리고 합격까지의 여정을 기록했습니다

 

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

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

kmong.com

댓글