인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

Inflearn Community Q&A

happydy08192331's profile image
happydy08192331

asked

Introduction to Python Algorithm Problem Solving (Coding Test Preparation)

변수가 연동되나요?

Resolved

Written on

·

289

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까지 바뀌는건가요..?

감사합니다.

코테 준비 같이 해요! python

Answer 1

0

codingcamp님의 프로필 이미지
codingcamp
Instructor

안녕하세요^^

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

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

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

 

happydy08192331's profile image
happydy08192331

asked

Ask a question