⚠️ Типичные ошибки

⚡ Кратко: ошибки

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

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

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

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

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

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

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

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

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

Пунктуация ломает Counter

words. и words считаются разными словами.

Перед split() убирайте точку и запятую или используйте более строгую нормализацию.

from collections import Counter

text = "Words, words."
words = text.lower().replace(".", "").replace(",", "").split()
print(Counter(words))

Новый OrderedDict вместо изменения исходного

Источник просит изменить исходную очередь.

Используйте clear()/update() или move_to_end() на том же объекте.

from collections import OrderedDict

tasks = OrderedDict({"task1": "низкий", "task2": "высокий"})
items = sorted(tasks.items(), key=lambda item: item[1] != "высокий")
tasks.clear()
tasks.update(items)
print(tasks)

global без инициализации

global counter не создаёт переменную автоматически.

Создайте counter на уровне модуля до вызова функции.

counter = 0

def increment_counter():
    global counter
    counter += 1

increment_counter()
print(counter)