✅ Разбор задачи: почему a изменился?
Вчера мы спрашивали, что выведет этот код:
a = [1, 2, 3]
b = a
b.append(4)
print(a)
🔎 Правильный ответ: [1, 2, 3, 4]
Разбираем, что произошло 👇
1⃣ Списки — изменяемый тип. Метод append() меняет сам объект, а не создаёт новый.
2⃣ b = a не копирует список. Переменные в Python хранят не сам объект, а ссылку на него. После присваивания a и b указывают на один и тот же список в памяти.
3⃣ Изменение через b видно через a. Поэтому append(4) отразился на обеих переменных — это один и тот же объект.
🧠 Как избежать ловушки:
🔹 b = a.copy() — поверхностная копия (для вложенных структур не спасёт)
🔹 b = a[☺ — то же самое через срез
🔹 import copy; b = copy.deepcopy(a) — полная независимая копия
💡 Запомни правило: присваивание списка — это не копирование, а создание второй ссылки. Хочешь независимую копию — копируй явно!
Хочешь пройти старт в Python без таких граблей? 🚀
📘 Забирай гайд «5 ошибок новичков в Python и как их избежать уже на первой неделе» 👉 https://infazy.ru/downloads/5-oshibok-novichkov-v-python/
#Python #Задача #Разбор #Программирование #Код #IT #Обучение