# Solving and testing word frequency counting (part 474d)

Посмотрим на задачу глазами разработчика: сначала решение, затем убеждаемся в его корректности.

## Задача

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

## Решение

```python
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()` сразу возвращает отсортированный список пар.

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

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

## Сложность

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


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

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

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

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

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

**Читайте также:**

[задач](https://sway.cloud.microsoft/VwQxJoc6wknpvBXn) · [Проверка](https://adamweber74.wixsite.com/my-site-1/post/%D8%B3%D9%83%D8%B3-%D8%B9%D9%86%D8%AA%D9%8A%D9%84-%D9%85%D8%B5%D8%B1---%D9%81%D9%8A%D8%AF%D9%8A%D9%88%D9%87%D8%A7%D8%AA-%D8%B9%D9%86%D8%AA%D9%8A%D9%84-%D8%A7%D9%84%D9%85%D8%AD%D9%84%D8%A9-%D8%A7%D9%84%D8%A5%D8%A8%D8%A7%D8%AD%D9%8A%D8%A9) · [частоты](https://sway.cloud.microsoft/lHReULlL6fVzyqvd) · [задачу](https://rimworld.gallery/m/random/t/16306) · [разбивается](https://exhibit50238.mataroa.blog/blog/machika-yt-desnuda/) · [Задача](https://discuss.tchncs.de/post/65444558) · [работы](https://mjac.io/%E7%81%AB%E5%BD%B1%E5%BF%8D%E8%80%85%E5%90%8C%E4%BA%BAh%E5%8A%A8%E6%BC%AB?f=instapaper) · [python](https://www.sfahba.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/leezy-patreon-leaked-4212e3.pdf) · [сразу](https://team.writefreely.dev/oz40fc81/loland-sonya) · [список](https://vit.ac.in/wp-content/uploads/event-manager-uploads/event_banner/2026/10/boysonvacation-0b9fdd.pdf) · [случай](https://news-ctl-posts.hashnode.dev/pitfalls-of-palindrome-check-part-73a0) · [базовая](https://frames98085.mataroa.blog/blog/nicki-nicole-desnuda/) · [встречается](https://daryj.com/lesbianasx?f=instapaper) · [числу](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [решение](https://news-ctl-posts.hashnode.dev/two-approaches-to-removing-duplicates-from-a-list-part-7b0d) · [слово](https://vit.ac.in/wp-content/uploads/event-manager-uploads/event_banner/2026/10/vey-anne-pornosu-altyaz-l-2b949d.pdf) · [Такой](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [сколько](https://paper.wf/clarabecker73log/cintia-cossio-video-xxx-porno-onlyfans-y-desnudos) · [минимум](https://www.sfahba.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/flowasthetao-brad-2ec928.pdf) · [возвращает](https://blogfreely.net/catherine-vasilyev70/uroki-vokala-odessa-tsentr) · [включая](https://paste.rs/Zaxyi) · [collections](https://wuchu-pub.com/uploads/20261020/3c5a99c46e00b1ff1f53ca36f19fd44f.pdf) · [корректности](https://statics.pancake.vn/web-media-264/6c/84/29/bc/a646a4adc53bc73edfc91878aab47917d6a40eb7895e427559a9bac8.pdf) · [Пример](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/snapchat-boobs-show-821b00.pdf) · [слова](https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/factorial-shagi-mvfui3ho.md) · [нескольких](https://hey.xyz/posts/n3fjbsnmryss2611yy) · [случайной](https://paste2.org/NZCcMjMx) · [убеждаемся](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [убыванию](https://yakihonne.com/article/naddr1qvzqqqr4gupzpa30hk2qseqygxpsx5p4wus8yk3r5ke023pf52ra0nag73vsef3aqy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0yknxve4x5mxzdfk95cnge3n956r2vf595urzeny95ck2wt9v9nxzc3nvgurvuqulu6) · [второй](https://jaflysilve.freeflarum.com/d/4432-4432-huo-ying-ren-zhe-tong-ren-hdong-man)

