В чём разница между copy.copy() и copy.deepcopy() в Python? Когда важно использовать именно deepcopy?
Pythonmediummiddle
Проверяет знание Python и pandas для анализа данных.
copydeepcopypythonreferences
Варианты ответа
copy() делает shallow copy — дублирует только внешний объект, внутренние ссылки остаются общими. deepcopy() рекурсивно копирует все вложенные объекты, меняя одно не затронешь другое
copy() сохраняет reference-count объектов, deepcopy() обнуляет счётчик ссылок — это важно для сборщика мусора при работе с circular references в долгоживущих продакшн-процессах
copy() копирует immutable-объекты (int, tuple, str), deepcopy() — mutable (list, dict, set). Для общего случая при работе с pandas DataFrame в обычных ETL надо использовать только deepcopy
copy() использует memory allocator быстрее, работает параллельно на нескольких ядрах процессора через GIL-оптимизации. deepcopy() — однопоточный аналог, медленнее для больших объектов
Как разобрать этот вопрос на собеседовании
Подумай, какая структура данных и какой инструмент pandas решают задачу с наименьшей сложностью: векторизация вместо циклов, groupby/merge вместо ручных склеек, корректная работа с NaN и типами. Интервьюер смотрит на читаемость кода и на то, понимаешь ли ты, что происходит «под капотом» — копия или вью, сложность операции, утечки памяти на больших данных.
На собеседовании по такому вопросу важно не только назвать ответ, но и кратко объяснить, почему он верный.
Тема вопроса — «Python». Чтобы подготовиться к похожим задачам, отрабатывай их на практике: python-тренажёр помогает довести навык до автоматизма, а раздел вопросов — увидеть формулировки, которые реально встречаются на интервью аналитика данных.
Разбор ответа
Подробный разбор с объяснением «почему правильный ответ верный» и почему остальные неверны — после регистрации.
3000+ вопросов с разбором, quiz-режим с проверкой, AI-собес и подготовка к интервью аналитика.