Что выведет код: `g = (x*2 for x in [1,2,3]); print(list(g)); print(list(g))`?
Pythonmediummiddle
Проверяет знание Python и pandas для анализа данных.
generatoriteratorlazy-evaluationpython
Варианты ответа
StopIteration на втором list(g) — Python выбрасывает исключение когда iterator истощён. Нужно обернуть в try/except или использовать islice() с reset параметром для restart
[2, 4, 6] [2, 4, 6] — generator expression создаёт переиспользуемый объект как list comprehension, оба list(g) дают одинаковый результат, ленивость только при первом обращении
[2, 4, 6] [2, 4, 6] — generator кэширует значения после первого прохода, повторный list(g) возвращает кэш. Python автоматически материализует generator в tuple для переиспользования
[2, 4, 6] [] — generator одноразовый, после первого list(g) он exhausted, повторное обращение возвращает пустой list. Нужно пересоздать generator если требуется повторная итерация по данным
Как разобрать этот вопрос на собеседовании
Подумай, какая структура данных и какой инструмент pandas решают задачу с наименьшей сложностью: векторизация вместо циклов, groupby/merge вместо ручных склеек, корректная работа с NaN и типами. Интервьюер смотрит на читаемость кода и на то, понимаешь ли ты, что происходит «под капотом» — копия или вью, сложность операции, утечки памяти на больших данных.
На собеседовании по такому вопросу важно не только назвать ответ, но и кратко объяснить, почему он верный.
Тема вопроса — «Python». Чтобы подготовиться к похожим задачам, отрабатывай их на практике: python-тренажёр помогает довести навык до автоматизма, а раздел вопросов — увидеть формулировки, которые реально встречаются на интервью аналитика данных.
Разбор ответа
Подробный разбор с объяснением «почему правильный ответ верный» и почему остальные неверны — после регистрации.
3000+ вопросов с разбором, quiz-режим с проверкой, AI-собес и подготовка к интервью аналитика.