01_Python

27_mutable과 immutable

chuuvelop 2025. 1. 7. 01:58
728x90
01. mutable과 immutable

 

  • mutable : 생성된 후에 변경이 가능한 자료형
    • 리스트, 세트, 딕셔너리
  • immutable : 생성된 후에는 변경이 불가능한 자료형
    • 정수, 실수, 문자열, 튜플
  • id() : 변수나 자료형의 메모리 주소를 확인

 

02. mutable
me = [1, 2, 3]

print(id(me))
2877366159488

 

me.append(4)

print(id(me))
2877366159488

 

me
[1, 2, 3, 4]

 

 

03. immutable

me = 10

print(id(me))
140726437685976
me += 1

print(id(me))
140726437686008

 

04. mutable의 특징
me = [1, 2, 3]
you = me

print(id(you))
print(id(me))
2877366041024
2877366041024

※id가 바뀌지 않음

 

you.append(4)
print(you)
[1, 2, 3, 4]
print(me)  ###you에만 append를 해도 me에도 영향을 미친다
[1, 2, 3, 4]

 

05. 리스트의 복사

#안전하게 복사하는 방법
print(me)
print(id(me))
[1, 2, 3, 4]
2877366041024

 

you = me[:]  ##이 요소를 기반으로한 새로운 튜플을 만드므로, 영향을 미치지 않는다(id가 바뀜)
print(you)
print(id(you))
[1, 2, 3, 4]
2877366438976

 

me.append(5)
print(me)
print(you)
[1, 2, 3, 4, 5]
[1, 2, 3, 4]

 

# copy 함수 사용
you = me.copy()
print(me)
print(you)

print(id(me))
print(id(you))

 

[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5]
2877366041024
2877366550720

 

me.append(6)
print(me)
print(you)
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 4, 5]
728x90

'01_Python' 카테고리의 다른 글

29_제어문>조건문  (0) 2025.01.07
28_사진넣기  (0) 2025.01.07
26_컬렉션>세트  (1) 2025.01.07
25_컬렉션>딕셔너리  (0) 2025.01.07
24_컬렉션>튜플  (0) 2025.01.07