ENIGMA AI
ENIGMA AI
Python Легкий

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

Изменяемые и неизменяемые типы в Python

Неизменяемые (Immutable):

Тип Пример
int 42
float 3.14
bool True
str "hello"
tuple (1, 2, 3)
frozenset frozenset({1, 2})
bytes b"data"
s = "hello"
s[0] = "H"  # TypeError!
s = "Hello"  # Создаётся новый объект

Изменяемые (Mutable):

Тип Пример
list [1, 2, 3]
dict {"a": 1}
set {1, 2, 3}
bytearray bytearray(b"data")
lst = [1, 2, 3]
lst[0] = 10  # OK, тот же объект
lst.append(4)  # OK

Практические последствия:

1. Ключи словаря:

d = {(1, 2): "tuple"}  # OK
d = {[1, 2]: "list"}   # TypeError!

2. Аргументы по умолчанию:

# ПЛОХО
def add(item, lst=[]):
    lst.append(item)
    return lst

# ХОРОШО
def add(item, lst=None):
    if lst is None:
        lst = []
    lst.append(item)
    return lst

3. Копирование:

a = [1, 2, 3]
b = a       # Ссылка на тот же объект
b = a[:]    # Поверхностная копия
b = copy.deepcopy(a)  # Глубокая копия

Похожие вопросы

Готовитесь к собеседованию?

ENIGMA AI — невидимый ИИ-помощник для технических интервью

Попробовать бесплатно
Все вопросы