К изменяемым относятся list, dict, set и bytearray; к неизменяемым — int, float, bool, str, tuple, bytes и frozenset. Изменяемость описывает возможность менять сам объект, а не переприсваивать переменную.
Какие изменяемые и неизменяемые объекты есть в Python?
К изменяемым относятся list, dict, set и bytearray; к неизменяемым — int, float, bool, str, tuple, bytes и frozenset. Изменяемость описывает возможность менять сам объект, а не переприсваивать переменную.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
К изменяемым относятся list, dict, set и bytearray; к неизменяемым — int, float, bool, str, tuple, bytes и frozenset. Изменяемость описывает возможность менять сам объект, а не переприсваивать переменную.
Переменная может начать ссылаться на другой объект любого типа. Кортеж не позволяет заменить свой элемент, но вложенный список внутри него остаётся изменяемым. Поэтому неизменяемость контейнера не означает глубокую неизменяемость всех данных. Аналогично не каждый tuple подходит для ключа dict: все его элементы должны быть хешируемыми. Это важно для разделяемых значений, аргументов по умолчанию и кеширования.