Какие типы данных в Python являются изменяемыми и неизменяемыми?

В Python типы данных делятся на изменяемые (mutable) и неизменяемые (immutable) в зависимости от того, можно ли изменить объект после его создания.

Короткий ответ

Что ответить на собеседовании

В Python типы данных делятся на изменяемые (mutable) и неизменяемые (immutable) в зависимости от того, можно ли изменить объект после его создания.

Подробный разбор

Ответ с пояснениями

В Python типы данных делятся на изменяемые (mutable) и неизменяемые (immutable) в зависимости от того, можно ли изменить объект после его создания.

  • Неизменяемые типы: int, float, bool, str, tuple, frozenset

    • После создания объекта изменить его содержимое нельзя.
    • При изменении создаётся новый объект.
  • Изменяемые типы: list, dict, set, bytearray

    • Можно изменять содержимое объекта без создания нового.

Основные различия:

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

Пример:

# Неизменяемый тип
s = "hello"
s2 = s.replace('h', 'j')  # создаётся новый объект
print(s)  # hello
print(s2) # jello

# Изменяемый тип
lst = [1, 2, 3]
lst.append(4)  # изменяет существующий объект
print(lst)  # [1, 2, 3, 4]

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее