Какие два основных типа данных в Python вы знаете?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
В Python есть много встроенных типов данных, но два основных, часто противопоставляемых, это изменяемые (mutable) и неизменяемые (immutable) типы.
Изменяемые типы могут быть модифицированы после создания.
Неизменяемые типы не могут быть изменены после создания. Любая операция, которая "меняет" неизменяемый объект, на самом деле создает новый объект.
Примеры:
| Изменяемые | Неизменяемые |
|---|---|
list |
int |
dict |
float |
set |
str |
bytearray |
tuple |
objects (классы) |
bool |
NoneType |
|
bytes |
Пример изменения изменяемого типа (списка):
# Создаем список
my_list = [1, 2, 3]
# Изменяем элемент списка
my_list[0] = 10
# Теперь my_list стал [10, 2, 3] - тот же объект был изменен
Пример "изменения" неизменяемого типа (кортежа):
# Создаем кортеж
my_tuple = (1, 2, 3)
# Попытка изменить элемент вызовет ошибку
# my_tuple[0] = 10 # TypeError: 'tuple' object does not support item assignment
# Создание нового кортежа из существующего
new_tuple = (10,) + my_tuple[1:]
# Теперь new_tuple = (10, 2, 3), но my_tuple по-прежнему (1, 2, 3).
# Был создан новый объект new_tuple, my_tuple остался неизменным
Это различие важно при работе с функциями (изменяемые объекты могут быть изменены "на месте" внутри функции, влияя на исходный объект), при использовании в качестве ключей словарей (только неизменяемые объекты могут быть ключами) и при многопоточности (изменяемые объекты требуют более осторожного обращения).