Назад к вопросам
Junior
191
questionbank

Что такое изменяемые и неизменяемые типы данных в 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 также изменился
    

Различие между ними имеет значение для поведения переменных и передачи аргументов в функции. При передаче изменяемого объекта в функцию, изменения внутри функции будут видны вне ее. При передаче неизменяемого объекта, изменения внутри функции будут создавать новый локальный объект.