🏠 Домашнее задание

⚡ Кратко: домашнее задание

Counter подходит для популярных слов.

defaultdict(list) удобно группирует задачи и слова.

Поиск задач по категории можно сделать фильтрацией items().

OrderedDict позволяет менять порядок задач без создания новой очереди.

defaultdict(int) подходит для подсчёта посещений страниц.

global нужен только в задаче со счётчиком вызовов, но в проектах лучше избегать такой зависимости.

LRU-очередь можно моделировать через OrderedDict и move_to_end().

Каждое решение лучше оформлять функцией с понятными параметрами.

Топ-3 ошибки: не нормализовать регистр слов; создавать новую очередь вместо изменения исходной; забыть удалить старые элементы при превышении LRU-лимита.

Текст задания из LMS / источника

Самостоятельная проверка практикума

В извлечённых файлах урока отдельная LMS-домашка не найдена. Используйте 8 задач практикума как домашнюю проверку: перепишите решения без подсказок и сравните с разделом решений.

Пример вывода: Все 8 функций возвращают ожидаемые результаты.

Пошаговое решение

Мини-проверка

from collections import Counter

def popular_words(limit, *texts):
    words = []
    for text in texts:
        words.extend(text.lower().replace(".", "").replace(",", "").split())
    return Counter(words).most_common(limit)

print(popular_words(2, "A a b", "b a"))

Если эта функция работает, повторите тот же подход для остальных задач практикума.

Проверка в VS Code

  1. Создайте файл main.py и перенесите решение.
  2. Запустите python main.py в терминале.
  3. Сравните вывод с примером из задания.
  4. Проверьте крайние случаи: пустые коллекции, повторяющиеся значения и некорректные параметры.