Вступить в клуб →
средняявопросPython и асинхронность

Срез как копия списка словарей: что окажется в исходных данных

Перед пересчётом заказа разработчик сделал «снимок» строк, чтобы не портить исходные данные:

rows = [{"id": 1, "qty": 0}, {"id": 2, "qty": 0}]

snapshot = rows[:]
snapshot[0]["qty"] = 5
snapshot.append({"id": 3, "qty": 0})

print(len(rows), rows[0]["qty"])

Что напечатает последняя строка?

  • 2 5 — новый список, но словари внутри те же самые объекты
  • 2 0 — срез делает полностью независимую копию данных
  • 3 5 — snapshot и rows остались одним и тем же объектом
  • 3 0 — добавление элемента видно в обоих списках, изменение словаря — нет

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела