Что такое изменяемые и неизменяемые типы данных в Python и приведите примеры?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
В Python типы данных делятся на изменяемые (mutable) и неизменяемые (immutable).
Изменяемые типы данных могут быть изменены после создания. При изменении объекта изменяемого типа, сам объект остается тем же, но его содержимое меняется.
Неизменяемые типы данных не могут быть изменены после создания. Любая операция, которая, казалось бы, изменяет объект неизменяемого типа, на самом деле создает новый объект.
Примеры:
| Тип | Изменяемый / Неизменяемый |
|---|---|
int |
Неизменяемый |
float |
Неизменяемый |
str |
Неизменяемый |
bool |
Неизменяемый |
tuple |
Неизменяемый |
list |
Изменяемый |
dict |
Изменяемый |
set |
Изменяемый |
frozenset |
Неизменяемый |
Примеры кода:
-
Неизменяемый
int:a = 5 b = a print(id(a)) # Выводим id объекта a += 1 print(id(a)) # Выводим id того же объекта после "изменения" - он другой print(b) # b осталось прежним -
Изменяемый
list:list1 = [1, 2, 3] list2 = list1 print(id(list1)) # Выводим id списка list1.append(4) print(id(list1)) # Выводим id списка после добавления элемента - он тот же print(list2) # list2 также изменился
Различие между ними имеет значение для поведения переменных и передачи аргументов в функции. При передаче изменяемого объекта в функцию, изменения внутри функции будут видны вне ее. При передаче неизменяемого объекта, изменения внутри функции будут создавать новый локальный объект.