初心者向けPython演習
Count Character Frequency in Python
How many times does each letter appear? Build a frequency dictionary, or let Counter do it.
学べること
- Counting with a dictionary and .get()
- collections.Counter
- Printing counts in order
"banana"
'a'3'b'1'n'2One counter per character
文字の出現回数を数えるのは、最も多く出てくる文字を探す、2つの文字列の構成が同じか調べる、といった文章分析でよく使う処理です。結果はたいてい、文字をキー、出現回数を値とする辞書に保存します。
重要なポイント
counts[ch]=counts.get(ch, 0)+ 1 adds one for each character.Counter(text)builds the same table in one call.sorted(counts.items())prints the letters alphabetically.
どんな場面で使う?
- 短くてわかりやすい例を通して、Pythonの書き方と基本的な考え方に慣れる。
- より複雑な問題に進む前に、しっかりした土台を作る。
- パソコンにPythonをインストールしなくても、ブラウザですぐにコードを実行して試す。
サンプルコード
main.py
from collections import Counter
# Counter maps each character to its occurrence count.
frequencies = Counter("banana")
for character in sorted(frequencies):
print(f"{character}={frequencies[character]}")
実行結果
a=3
b=1
n=2
コードの解説
Counter("banana")は文字列を1回たどって度数表を作り、aは3回、nは2回、bは1回です。ループはsorted()によって文字をアルファベット順にたどるので、毎回同じ順番で結果が表示されます。
値を変更し、PythonをインストールせずにCodeUtilityオンラインPythonコンパイラで実行できます。
発展問題
下のヒントにしたがってコードを書き換えてみましょう。自分で変えて結果を確かめると、コードを読むだけよりずっと深く理解できます。
- 入力データを変え、実行する前に結果を予想してから確かめる。
- データが空のときや不正なときのチェックを追加する。
- 処理を別の関数にまとめ、いろいろなデータで試す。
チャレンジで練習する
このレッスンの内容を使って実際の問題を解きましょう。各チャレンジはブラウザで動き、すぐにテストされ、AI のレビューも受けられます。
すべてのチャレンジ