6th November 2026

Проверяем решение тестами: подсчёт частот слов

Решение без тестов быстро ломается, поэтому добавим к задаче простые проверки.

Задача

Дан текст. Посчитать, сколько раз встречается каждое слово, и вывести слова по убыванию частоты.

Решение


from collections import Counter


def word_count(text: str) -> list[tuple[str, int]]:
    words = text.lower().split()
    return Counter(words).most_common()


print(word_count("a b a c b a"))

Как это работает

Текст разбивается на слова, Counter подсчитывает вхождения за линейное время, а most_common() сразу возвращает отсортированный список пар.

Пример работы


[('a', 3), ('b', 2), ('c', 1)]

Сложность

O(n) по времени по числу слов, O(k) по памяти по числу уникальных.

Проверка тестами

Хорошая привычка — проверять решение сразу на нескольких примерах, включая крайние случаи.


assert is_valid(True) is not None  # базовая проверка вызова
assert is_valid(False) is not None  # и второй случай

Такой минимум уже защищает от случайной ошибки при правках кода.

Тесты вида assert удобны для учебных задач: они короткие, наглядные и не требуют фреймворков.


Related:

3d porn comic ella and david

annatomixx

href="//posts.workshop-hub.workers.dev/anagram-razbor-2">Осваиваем задачу: проверка анаграмм

Шаг за шагом: числа Фибоначчи

Пошаговый разбор: шифр Цезаря

Пошаговый разбор: решето Эратосфена

Lindsay Vanilla Fuck – Brazilian Shemale Sex Video

Writing tests for removing duplicates from a list

ETV Premium VK: Eurotic TV Shows, Solo Porn and Camgirls