728x90

다음 a, b, c는 값이 저장된 변수이다.

a = 1028
b = "My birthday"
c = [1, 0, 2, 8]

 

파이썬은 다른 프로그래밍 언어들과 달리 자료형의 타입을 지정할 필요가 없다. 파이썬이 자동으로 자료형의 타입을 지정하기 때문에 매우 편리하다.

 

a 변수의 메모리의 주소는?

id(a)
# 1826499227184

 

변수  a의 주소값은 '1826499227184'인 것이다.

 

다음의 경우 메모리 주소는 어떻게 될까?

a = 1028
b = a
id(a) # 1826499227184
id(b) # 1826499227184

 

변수 b에 a 변수를 대입한 경우, a와 b의 메모리 주소는 동일하다.

 

a is b
# True

 

a 리스트의 요소를 수정하면 b 또한 바뀌게 된다.

그렇다면 b 변수가 a 변수와 다른 메모리 주소를 가리키도록 만들기 위해서는 어떻게 해야 할까?

 

1. 슬라이싱 [:] 이용하기

b =  a[:]

 

2. copy() 이용하기

from copy import copy
b = copy(a)

 

728x90

+ Recent posts