세조목

PYTHON 정리(점프투파이썬 - 변수)(23.12.31) 본문

데이터 분석 공부/Python

PYTHON 정리(점프투파이썬 - 변수)(23.12.31)

세조목 2023. 12. 31. 19:01
  • 본 내용들은 PYTHON을 공부하면서 차후 제가 복습하기위해 정리해놓은 것으로 제가 새롭게 알게된 내용들만을 정리하였습니다. 또한 배움이 부족하여 미처 다 파악하지 못한 부분들도 많으니 혹시나 이 포스팅을 보시는 분들께서는 다른 포스팅, 도서, 강의도 함께 참고하시기 바라겠습니다.

 

1. 변수의 개념

변수객체를 가리키는 것이라고 할 수 있다.

여기서 '객체'란 자료형의 데이터(값)를 의미한다.

a = [8, 3, 12]

이라고 했을때 등호를 사용하고 있지만 실제로는 a가 [8, 3, 12]를 '가리키고(pointing)'있는 것이다.

'같다'와 '가리킨다'는 다른 개념이다.

 

a = [8, 3, 12]
b = a

예시에서처럼 b 변수에 a 변수를 넣으면 b와 a는 완전히 동일하다고 할 수 있다.

한 가지 차이점이라고 한다면 [8, 3, 12]라는 리스트 자료형을 가리키는 변수가 a, b 두 개로 늘어났다는 점이다.

만약 a리스트의 요소를 바꾼다면 b에도 영향이 갈까??

a = [8, 3, 12]
b = a
a[2] = 33

a
>>> 33

b
>>> 33

그렇다.

a 리스트의 요소를 바꿨을때 b리스트의 요소도 바뀌는 것을 확인할 수 있다.

a, b 두 변수 모두 같은 리스트를 가리키고있기 때문이다.

 

하나의 변수 리스트의 요소만 수정할 수는 없는걸까??

가능하다.

두 가지 방법을 이용할 수 있다.

  1. 콜론(:) 활용
  2. copy 모듈 활용

● 콜론(:) 활용

a = [8, 3, 12]
b = a[:]

a[0] = 2
a
>>> [2, 3, 12]

b
>>> [8, 3, 12]

이렇게 변수를 복사할 때 콜론(:)을 이용하면 다른 하나의 변수 內 요소를 변경해도

나머지 변수는 변하지 않는다.

 

● copy 모듈 활용

copy 함수를 사용하기 위해 copy 모듈을 활용한다.

 ※ 모듈에 대해서는 차후 학습할 예정

이 때

from copy import copy를 입력해줘야 한다.

from copy import copy
a = [8, 3, 12]
b = copy(a)

이렇게 복사를 해주면 되는데 변수a와 b가 같은지 다른지 확인해보면 아래와 같이 다르다고 나온다.

b is a
>>> False

 

2. 변수 지정

변수 지정은 다양한 방식으로 할 수 있는데

그 중 기억에 남는 방식을 남겨본다.

a = 8
b = 38

a, b = b, a

a
>>> 38

b
>>> 8

a는 8을 가리키고있고, b는 38을 가리키고있다.

그런데 a, b = b, a라는 문장을 입력해주니

a와 b가 가리키는 값이 서로 뒤바뀌었다.

a, b = b, a라는 문장의 의미가

'a, b가 b, a를 가리킨다.' 라고 해석되기때문이다.