본문 바로가기
Dev/Python

변수 할당

by 석맨.class 2023. 9. 7.
반응형

ㅇ 변수에 값을 저장할때 다음과 같이 a 변수의 내용을 b에 담을때,

a = [1,2,3]
b = a
a[1] = 4
print(a) # [1, 4, 3]
print(b) # [1, 4, 3]

b 의 값도 수정이된다.

b = a 는 a 의 내용을 b 에 복사 하는것이 아니라 a의 주소를 바라보게 만들기 때문에 주의해야 한다.

 

a의 값만 b에 할당하고 싶다면 다음과같은 방법이 있다.

 

1. [:] 사용

a = [1,2,3]
b = a[:]
a[1] = 4
print(a) # [1, 4, 3]
print(b) # [1, 2, 3]

위 같은 경우 a의 값을 잘라서 새로운 값을 만들기때문에 b에는 a의 주소가 아닌 새로운 주소값이 저장된다.

 

2. copy 모듈, 메소드 사용

모듈 사용

from copy import copy
a = [1,2,3]
b = copy(a)
a[1] = 4
print(a) # [1, 4, 3]
print(b) # [1, 2, 3]

메소드 사용

a = [1,2,3]
b = a.copy()
a[1] = 4
print(a) # [1, 4, 3]
print(b) # [1, 2, 3]

 

ㅇ 변수 두개의 주소를 바꾸기

다른 언어에서는 두개의 변수값을 바꾸기 위해서는 임시변수가 필요하지만 파이썬에서는 다음과 같이 쉽게 변경 할 수 있다.

a = 3
b = 5
a,b = b,a
print(a)
print(b)

 

ㅇ 변수 선언 방법

# a, b = ('python', 'life')
# [a, b] = ['python', 'life']
# a, b = 'python'