파이썬의 모든 데이터 타입들은 객체(objecrt) 입니다.
객체 단위로 메모리 상에서 정보를 관리 하는데요, 이 객체에는 3가지 특성이 있습니다.
바로 값(value),유형(type),정체성(id) 입니다.
year = 1789 # 객체를 만들어 변수에 대입
>>> year # 객체의 값 (객체 자신) 구하기
1789
>>> type(year) # 객체의 유형 구하기
<class 'int'>
>>> id(year) # 객체의 정체성 (고유번호) 구하기
140711867085328
데이터 타입 | |
---|---|
가변(mutable) | list, set, dict |
불변(immutable) | int, float, bool, tuple, string, unicode |
List
list = [1, 2, 3, 4]
print(list)
# [1, 2, 3, 4]
list[1] = 222
print(list)
# [1, 222, 3, 4]
tuple
tuple = (1, 2, 3, 4)
print(tuple)
# (1, 2, 3, 4)
tuple[1] = 222
"""
Traceback (most recent call last):
File "main.py", line 5, in <module>
immutable_tuple[1] = 222
TypeError: 'tuple' object does not support item assignment
"""
tuple의 요솟값을 변경할 수 없기 때문에 새로운 tuple 인스턴스를 같은 이름의 변수에 할당하는 방법으로 변수가 가리키는 대상을 바꿔야 합니다.
tuple = (1, 2, 3, 4)
print(tuple)
# (1, 2, 3, 4)
tuple = (1, 222, 3, 4)
print(tuple)
# (1, 222, 3, 4)
문자열(string)은 불변 객체이다.
a = "hyunhee"
a[1] = "i"
"""
Traceback (most recent call last):
File "main.py", line 2, in <module>
immutable_string[0] = "Y"
TypeError: 'str' object does not support item assignment
"""
문자열의 값을 변경하고 싶다면 새로운 문자열을 만들어야 합니다.
Nice comment on this blog