В этой подборке вопросы сгруппированы по формату «Лайвкодинг», чтобы подготовку можно было вести от базовых тем к практическим задачам. В подборке чаще встречаются темы: frontend, browser, database.
Для синхронной чистой функции можно вернуть декоратор с локальным словарём результатов. Ключ составляется из аргументов; в таком простом варианте они должны быть хешируемыми.
List comprehension пытается заранее создать десять миллиардов квадратов, что требует огромной памяти. Для последовательной обработки замените список генераторным выражением, но учитывайте стоимость самого вывода.
Сделайте первый аргумент функцией по умолчанию None, а настройки — keyword-only. Внутренняя функция создаёт обёртку с functools.wraps, чтобы introspection видел исходные метаданные и сигнатуру.
Select the ten shortest rows first, then select the longest row from that subset. Add an ID tie-breaker and decide how NULL durations and tables with fewer than ten videos should behave.
Код выведет четыре строки с числом 6. Все lambda обращаются к одной переменной i из comprehension, которая к моменту их вызова имеет последнее значение 3.
Используйте collections.deque с maxlen=1000: при добавлении нового элемента самая старая запись автоматически удаляется. Память ограничена последней тысячей элементов.
Здесь гонка read–modify–write: два запроса могут проверить один баланс и перезаписать результаты друг друга. Проверку остатка и уменьшение нужно выполнять атомарно, а сумму валидировать.
Добавляйте меньший элемент и двигайте только его указатель. При равенстве можно взять элемент первого массива, оставив второй для следующего шага; так повторы сохраняются.
Начало — город отправления, который нигде не встречается как прибытие. Постройте отображение отправление→прибытие и последовательно пройдите от начала до отсутствия следующего билета.
Синхронный parse_text_and_save_to_postgres блокирует event loop внутри async-обработчика. Для блокирующего I/O вынесите вызов в ограниченный пул потоков; тяжёлый CPU-парсинг требует другого решения.