Rozdział 11 · Mnóstwo informacji!

Mini-projekt — liczenie częstości słów

łańcuch znaków, pętle i licznik słownik w jednym klasycznym zadaniu — z ręcznym algorytmem i podglądem gotowego narzędzia ze standardowej biblioteki.

Klasyczne zadanie, które łączy prawie wszystko z tego rozdziału: łańcuchy (rozdział 8), pętle (rozdział 10) i słownik jako licznik.

Algorytm krok po kroku

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)
word = 'python'counts.get('python', 0) + 1 = 1 → counts = {'python': 1}word = 'is'counts = {'python': 1, 'is': 1}word = 'great'counts = {'python': 1, 'is': 1, 'great': 1}word = 'and'counts = {..., 'and': 1}word = 'python' ponowniecounts.get('python', 0) + 1 = 2 → counts['python'] = 2
counts.get(word, 0) + 1 — jeśli słowa nie ma już tam, get() zwróci 0, a licznik zacznie od 1
Dlaczego właśnie .get(word, 0), a nie counts[word]
Na pierwszym spotkaniu słowa kluczowego word w counts jeszcze nie — counts[word] by spowodowało KeyError. .get(word, 0) zwraca 0 dla nowego słowa, a kod działa tak samo zarówno dla nowych, jak i istniejących słów.

Ten sam algorytm przez setdefault()

chastota_setdefault.py
counts = {}
for word in words:
    counts.setdefault(word, 0)
    counts[word] += 1

Trochę głębiej — standardowa biblioteka już rozwiązała ten problem

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)]
Algorytm ręczny jest ważniejszy niż gotowa funkcja
Counter z biblioteki standardowej robi to samo w jednej linii — a w prawdziwym kodzie często lepiej go używać. Ale algorytm na .get(word, 0) + 1 warto było przejrzeć to rękami: pokazuje, jak liczenie działa w słownik ogólnie, a nie tylko że istnieje gotowe narzędzie do tego zadania.
Praktyka: Liczenie częstotliwości występowania słów w tekście
interaktywny laptop bezpośrednio w przeglądarce – Python 3.14 przez Pyodide, bez instalacji
Otwórz praktykę →