# Step-by-step: word frequency counting (part e258)

Пройдём задачу шаг за шагом — такой формат удобен для первого знакомства с алгоритмами.

## Задача

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

## Решение

```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://jaflysilve.freeflarum.com/d/3721-3721-wals-roberta-x-220-sets-printable-version) · [линейное](https://populationmalawi.org/kitsuneanri?f=instapaper) · [words](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [включая](https://avdc.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/katya-grasova-fbf697.pdf) · [задачи](https://privatebin.devol.it/?e435290397dbb13c#C2iBXutonYXKPPVo6RzyDvs5mKFmBi37oGWSNpjDN1jU) · [алгоритмами](https://loc.edu/wp-content/uploads/event-manager-uploads/event_banner/2026/10/ekaterina-lisina-onlyfans-63d0d2.pdf) · [Задача](https://statics.pancake.vn/web-media-264/8a/64/01/b2/f09c57900ad1e0cbe286ac65c4eef8ed33c2415ef34a068080562cae.pdf) · [работает](https://shop.oldbluelast.beer/%D8%B3%DA%A9%D8%B3.%D8%A7%D9%81%D8%BA%D8%A7%D9%86%DB%8C.%D9%BE%D8%B4%D8%AA%D9%88?f=instapaper) · [работы](https://ecency.com/@martinnemec5998/junior-miss-pageant-2000-french-nudist-beauty-contest-5-ba3088) · [текст](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [list[tuple[str](https://news-ctl-posts.hashnode.dev/pitfalls-of-the-sieve-of-eratosthenes-part-a6d4) · [разбор](https://lucasb9365.wixsite.com/my-site-1/post/kaiamx) · [сколько](https://radicle.network/nodes/index.radicle.garden/rad%3AzVyaxThoJ6qc25ePKPFQpf5is2db/issues/2440875694c1054273fcf48eb6ad62d59b4a7e63) · [возвращает](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [вывести](https://paste2.org/N394P87H) · [следим](https://avdc.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/paige-uncaged-leak-74a836.pdf) · [Убеждаемся](https://a-table.paris/jelly+bean+brains+leaked+sextape?f=linkcentre) · [каждое](https://drop.xtrafrancyz.net/selif/486x6cj37r.pdf) · [считаются](https://artofhosting.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/t-rk-amat-r-plak-foto-raflar-e3bd70.pdf) · [Разбор](https://sway.cloud.microsoft/SQ5toqh0Ez5HuZfO)

