← クエスト一覧

クエスト49:collections.Counterを使おう

スライド 1 / 6
コーデ
💻 コード例
実行結果
← クエスト一覧
🐍 Python / Quest 49 / 85

クエスト49:collections.Counterを使おう

応用 +10 XP
🏠
今回の課題
「banana」の各文字の出現回数を Counter で数えて、多い順に「a: 3」のように表示しよう。
📖 解説を見る
🧮 Counter って何?

collections.Counter は、要素の出現回数を自動で数えてくれる特別な辞書です。

✏️ 書き方:
from collections import Counter
c = Counter('hello')
 → {'l': 2, 'h': 1, 'e': 1, 'o': 1}
c.most_common() → [('l', 2), ('h', 1), ('e', 1), ('o', 1)](多い順)
.most_common() が返すのは (要素, 回数) のタプルのリストなので、for で変数2つに受け取れます。

📋 作るもの:
Counterword をわたして、各文字の出現回数を数える
.most_common()for でまわし、文字と回数を2つの変数で受け取る
・「文字: 回数」の形で1行ずつ表示する(コロンのうしろに半角スペース)
'banana' なら a: 3 / n: 2 / b: 1 の3行(多い順)

💡 どこで使う?

集計をひと言で済ませたいときに使います。Q49 では get(c, 0) + 1 で手作業で数えましたが、Counter はそれを1行に。単語の頻度、投票の集計、most_common(3) でアクセス数トップ3、といった分析で大活躍します。

⚠️ ポイント:
Counter(文字列やリスト) で回数を数える
.most_common() は多い順に (要素, 回数) のリストを返す
ヒントを見る
Counter(文字列) で回数を数えられるよ。.most_common() は多い順に (要素, 回数) を返すので、for で2つの変数に受け取って表示しよう。
期待する出力
a: 3
n: 2
b: 1
📄 見本
「答えを見る」を押すと、お手本のコードが出ます。クリックでコピーできます。
💻 コードエディタ
実行すると結果がここに表示されます
正解!見本と同じになりました。
次へ →
🏠 ホームへ

れんしゅうもんだい

☑ 0 / 3 正解 レッスンに戻る

全問正解でクエストクリア!

未挑戦

問題 1: ['apple', 'banana', 'apple', 'cherry', 'banana', 'apple'] で最も多い果物と回数を「apple: 3」と表示しよう!

実行結果
実行できたよ!
もう一度チャレンジ!
📄 見本の出力
apple: 3
未挑戦

問題 2: 'mississippi' の 's' が何回出てくるか表示しよう!

実行結果
実行できたよ!
もう一度チャレンジ!
📄 見本の出力
4
未挑戦

問題 3: [1, 2, 2, 3, 3, 3] の各数値と回数を小さい順に「1: 1」のように表示しよう!

実行結果
実行できたよ!
もう一度チャレンジ!
📄 見本の出力
1: 1 2: 2 3: 3
コピーしました!