# Solving and testing word frequency counting (part c5d9)

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

## Задача

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

## Решение

```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://ecency.com/@vojtechurban2724/fabian-arnold-nude-059896) · [глазами](https://radicle.network/nodes/index.radicle.garden/rad%3Az4YHTPL6oARNQweMs1HgfB8yQQxab/issues/d3b3ce1933ef316ab957ea50f1dcb7055ace174c) · [import](https://avdc.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/lara-rose-full-videos-744f69.pdf) · [text.lower().split](https://discuss.tchncs.de/post/65440517) · [крайние](https://news-ctl-posts.hashnode.dev/two-ways-to-solve-the-sieve-of-eratosthenes-part-cc2d) · [слово](https://tweber677.wixsite.com/my-site-1/post/us-news-best-medical-schools-ranking) · [второй](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [защищает](https://drop.xtrafrancyz.net/selif/8jwui619ya.pdf) · [убыванию](https://jaflysilve.freeflarum.com/d/4594-4594-ella-graves-erome-exclusive-anal-photos-and-video-collection) · [базовая](https://blogfreely.net/igorcollins26/ane-wa-yanmama-junyuu-chuu-manga) · [текст](https://yakihonne.com/article/naddr1qvzqqqr4gupzp3989kzuc9j6aqar5x82pvtrrnttgadfp9vx23e64fpw9qst24yjqy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0yknwdrzx5cnzde394jkvwf5956rwetz94skycfj94nrxdrr8ymr2vpn89jngrtl2gw) · [правках](https://loc.edu/wp-content/uploads/event-manager-uploads/event_banner/2026/10/dadeleine-d24865.pdf) · [разбивается](https://kappa.lol/qVOUuC) · [Пример](https://hey.xyz/posts/2z28fyt5gc9yvkh61vf) · [список](https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/word-count-oshibki-mvg978he.md) · [примерах](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/nidhi-joshi-boobs-8a188c.pdf) · [return](https://vit.ac.in/wp-content/uploads/event-manager-uploads/event_banner/2026/10/aliceholic-98f40d.pdf) · [корректности](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [привычка](https://ecency.com/@tomasruzick4961/post-0075f7) · [задачу](https://avdc.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/cos-1c9122.pdf) · [учебных](https://friends-of-armenia.org/%E9%BA%A6%E6%99%93%E9%9B%AF%E6%9C%AC%E5%AD%90?f=linkcentre) · [тестами](https://statics.pancake.vn/web-media-264/40/21/52/78/1f052f9491efa9a86ecd8e5b645fe7ffb9897a586ebc1475404b013f.pdf) · [подсчитывает](https://kappa.lol/1zazZQ) · [короткие](https://blogfreely.net/catherine-vasilyev70/bia-noir-nude-photo-gallery-adult-images-collection) · [разработчика](https://paper.wf/alma2004log/dadeleine) · [сначала](https://radicle.network/nodes/index.radicle.garden/rad%3Az3gg87fHqeHPGbGRAwMh3cktSJ2Az/issues/25a4000aa46fbee69bbc2808f6af6fc23f76a8e4) · [удобны](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [работы](https://paste.rs/YBOyp)

