• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    해결됨

변수가 연동되나요?

23.01.17 14:57 작성 조회수 205

1

안녕하세요 선생님

항상 강의 잘 듣고 있습니다.


a변수를 정의하고 나서

b=ab변수를 정의했는데,

b변수를 바꾸니 b변수만 변하는게 아니라 a변수까지 변합니다.

b변수와 a변수가 독립적인게 아니라 서로 연결되어있을까요?

그리고, 연결되지 않게 b변수를 정의하려면 어떻게 해야 할까요?

 

이게 제 코드입니다.

코드

a = [1, 2, 3]
b = a
b.pop(0)
print(a)

출력 결과

[2, 3]

 

b만 바꿔도 a까지 바뀌는건가요..?

감사합니다.

답변 1

답변을 작성해보세요.

0

안녕하세요^^

b = a 를 하면 a리스트의 주소가 b에 전달되는 얕은 복사입니다. 즉 b도 a가 가르키고 있는 메모리 공간을 같이 가르키므로 b로 접근하나, a로 접근하나 메모리의 같은 공간을 접근하는 것입니다.

아래와 같이 하면 깊은 복사를 하게 됩니다. 얕은복사와 깊은 복사를 구글링으로 공부해보세요.

a = [1, 2, 3]
b = a.copy() #깊은복사
b.pop(0)
print(a)