[Python] 자료형

shlim55·2025년 10월 21일

Python

목록 보기
5/25
a = [1,2,3]
b = a
print(id(a))
print(id(b))
print(a is b)



1891118836160
1891118836160
TRUE

주소값 같게 나옴 가리키는 대상이 같기에

A is b 했을때 True라고 뜸 a와b가 가리키는 객체가 같기에

a = [1,2,3]
b = a #주소값을 넣게된다 
a[1] = 4
print(a)
print(b)
print(a is b)

[1, 4, 3]
[1, 4, 3]
True

A랑 b랑 같은 값이 나옴, 같은 주소를 바라보고 있기 때문에 그렇다.

이렇게 하면 원하는 결과가 나옴
같은 공간을 바라보는게 아니고
새로 복사한 값을 넣어준 거기 때문에

그렇다면 b 변수를 생성할 때 a 변수의 값을 가져오면서 a와는 다른 주소를 가리키도록 만들 수는 없을까? 다음 2가지 방법이 있다.

  1. [:] 이용하기
>>> a = [1, 2, 3]
>>> b = a[:]
>>> a[1] = 4
>>> a
[1, 4, 3]
>>> b
[1, 2, 3]
  1. copy 모듈 이용하기
>>> from copy import copy
>>> a = [1, 2, 3]
>>> b = copy(a)

변수를 만드는 여러 가지 방법

a, b = ('python', 'life')

print(a)
print(b)


(a, b) = 'python', 'life'

[a, b] = ['python', 'life']

또한 여러 개의 변수에 같은 값을 대입할 수도 있다

>>> a = b = 'python'

이렇게도 가능하다 이렇게 하는게 다른 언어의 기본적인 값을 바꾸는 개념

a = 3
b = 5
temp = a 
a = b
b = temp

하지만 파이썬에선 이렇게 가능함

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

출력결과 
5
3
profile
A Normal Programmer

0개의 댓글