# Step-by-step: word frequency counting

Медленный разбор помогает понять код, а не просто скопировать его.

## Задача

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

## Решение

```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) по памяти по числу уникальных.


## Разбор по шагам

1. **Шаг 1. Входные данные.** Проверяем, что приходит в функцию, и какие значения считаются корректными.
2. **Шаг 2. Основной цикл.** Именно здесь происходит вся работа; следим за изменениями переменных на каждой итерации.
3. **Шаг 3. Результат.** Убеждаемся, что возвращаемое значение соответствует условию задачи, включая крайние случаи.

Когда каждый шаг понятен, доработка решения перестаёт быть лотереей.

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

[возвращает](https://drop.xtrafrancyz.net/selif/njflw1t5li.pdf) · [слово](https://privatebin.devol.it/?adb2e11e7aa530d1#8TMDgH1WngruPfdZpbZf1TtMps9PbvnRvLbwELWJAqga) · [функцию](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/jaylabriella-f52efe.pdf) · [words](https://verlagmartinkoch.at/ella+and+david+porn+comics?f=linkcentre) · [text.lower().split](https://rimworld.gallery/m/random/t/16276) · [слова](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [Задача](https://yakihonne.com/article/naddr1qvzqqqr4gupzqwlu6qulzz59qy56guu0q0yvz9530g0hl07q68ehcd9k4z5uhxc0qy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0yknqet9vdjrvvt994jnjcfc956rwdpe943xvwrz94jnswr9vcurvdf5xc6nsajqwhc) · [Пример](https://ecency.com/@jiribenes1878/laylaray-7039f8) · [времени](https://statics.pancake.vn/web-media-264/dc/e1/52/b4/61cd6c278923243d30794bba2fb8ae5f1213b258a25c7a10bbc81488.pdf) · [Входные](https://sway.cloud.microsoft/G1roIYsNoF41zM3W) · [значения](https://hey.xyz/posts/1pmrtf8xj4apbzncmsx) · [помогает](https://rimworld.gallery/m/random/t/16308) · [решения](https://hey.xyz/posts/3gwnxbrh67rekspdm41) · [Проверяем](https://ecency.com/@zdenekpospi7879/vk-374b2f) · [здесь](https://ninafournier129.overblog.fr/2026/10/valkyrie40k.html) · [текст](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [сколько](https://gal98874.carrd.co/) · [соответствует](https://ecency.com/@marekbenes6828/jucmis-b0a6b8) · [отсортированный](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [числу](https://sway.cloud.microsoft/jqVlWNmYVQZGbYNF) · [условию](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/10/chemal-gegg-db11d5.pdf) · [работа](https://yakihonne.com/article/naddr1qvzqqqr4gupzqvd4hml0qjktjvl67yn70a0wwhd2u5e7ttcl0yu28xd0prcl0nghqy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0ykkxvnxx9nrqefj95exgdmy956xzdp495uk2v3395ckvvmr89jkydpcxuenw7j5fc8)

