Глава 11 · Очень много информации!
Мини-проект — подсчёт частоты слов
Строки, циклы и словарь-счётчик в одной классической задаче — с ручным алгоритмом и превью готового инструмента из стандартной библиотеки.
Классическая задача, которая объединяет почти всё из этой главы: строки (глава 8), циклы (глава 10) и словарь как счётчик.
Алгоритм по шагам
chastota_slov.py
text = "python is great and python is fun"
words = text.lower().split()
counts = {}
for word in words:
counts[word] = counts.get(word, 0) + 1
print(counts)
Почему именно .get(word, 0), а не counts[word]
На первой встрече слова ключа
word в counts ещё нет — counts[word] вызвал бы KeyError. .get(word, 0) возвращает 0 для нового слова, и код одинаково работает и для новых, и для уже встречавшихся слов.Тот же алгоритм через setdefault()
chastota_setdefault.py
counts = {}
for word in words:
counts.setdefault(word, 0)
counts[word] += 1
Чуть глубже — стандартная библиотека уже решила эту задачу
counter_preview.py
from collections import Counter
counts = Counter(words)
print(counts) # Counter({'python': 2, 'is': 2, 'great': 1, 'and': 1, 'fun': 1})
print(counts.most_common(2)) # [('python', 2), ('is', 2)]
Ручной алгоритм важнее, чем готовая функция
Counter из стандартной библиотеки делает то же самое в одну строку — и в реальном коде часто лучше использовать именно его. Но алгоритм на .get(word, 0) + 1 стоило пройти руками: он показывает, как вообще устроен подсчёт через словарь, а не только то, что для этого есть готовый инструмент.Практика: подсчёт частоты слов в тексте
Интерактивный ноутбук прямо в браузере — Python 3.14 через Pyodide, без установки