Медленно и подробно: подсчёт частот слов
Медленный разбор помогает понять код, а не просто скопировать его.
Задача
Дан текст. Посчитать, сколько раз встречается каждое слово, и вывести слова по убыванию частоты.
Решение
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) по памяти по числу уникальных.
Разбор по шагам
- Шаг 1. Входные данные. Проверяем, что приходит в функцию, и какие значения считаются корректными.
- Шаг 2. Основной цикл. Именно здесь происходит вся работа; следим за изменениями переменных на каждой итерации.
- Шаг 3. Результат. Убеждаемся, что возвращаемое значение соответствует условию задачи, включая крайние случаи.
Когда каждый шаг понятен, доработка решения перестаёт быть лотереей.
Related:
- türk gizli çekim sikiş
- Рассматриваем задачу: проверка числа на простоту
- AI Undressing Gallery - AI Generated Nude Photos and Celebrity Content
- Baby Alien 4some - Hot Alien Foursome with Diamond Franco
- Haunted Cemetery Wallpaper 4K - Dark Fantasy Graveyard Art
- люк эванс
- Рассматриваем задачу: проверка палиндрома
- 结城结弦番号
- Несколько вариантов решения: возведение в степень
- 香香公主与爱犬
- realassthick
- Dead Space Remake Phone Wallpaper 4K Collection Online
- nymphocorn
- Медленно и подробно: вычисление факториала
- https://paper.wf/alma2004log/alyzoo-homemade-amateur-bestiality-taboo-porn-videos-and-photos
- Два подхода: максимум и минимум списка
- turk ifsa
- Girthmaster Sex Videos Featuring Thick Cock and Hardcore Scenes
- نيك سعوديه تويتر - سكس عربي حصري ومثير للكبار فقط
- Два способа решения: среднее значение списка
- Решаем и тестируем: вычисление факториала
- starsession nita