← クエスト一覧

クエスト76:点数ランキング

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

クエスト76:点数ランキング

応用 +10 XP
🏠
今回の課題
4人の点数を高い順に並べ替えて、「1位: 名前 (点数点)」の形でランキングを表示しよう。
📖 解説を見る
🏅 点数ランキングを作ろう!

辞書のリストを sorted() で並べ替えれば、ランキングが作れます。

✏️ 並べ替え方:
items = [{'name': 'ペン', 'price': 120},
         {'name': '本', 'price': 800}]
cheap_first = sorted(items, key=lambda x: x['price'])

key= には「比べたい値を取り出す関数」をわたします。この例なら価格の安い順に並び、reverse=True を足すと高い順になります。

📋 作るもの:
scores点数の高い順に並べ替えて、ranked に入れる
・並べ替えの基準は各辞書の 'score'key= にそれを取り出す lambda をわたす)
・元の scores は変えず、sorted() が返す新しいリストを使う
下の表示ループは書いてあるので、並べ替えの部分だけ作ればOK

💡 どこで使う?

「オブジェクトのリストを、ある項目で並べ替える」のは実アプリの並べ替えの中核です。売上の高い順、新着順、いいねの多い順、価格の安い順など、一覧の並び替えはすべて key= に「比べたい項目を取り出す関数」を渡して実現します。

⚠️ ポイント:
key= に lambda をわたすと、辞書の値を基準にできる
reverse=True で降順(高い順)
enumerate(リスト, 1) で順位を1から数える
ヒントを見る
sorted() の key= に「比べたい値を取り出す lambda」をわたそう。ここでは辞書から点数を取り出すよ。高い順にするオプションも忘れずに。
期待する出力
1位: ゆき (95点)
2位: はな (92点)
3位: たろう (85点)
4位: けんた (78点)
📄 見本
「答えを見る」を押すと、お手本のコードが出ます。クリックでコピーできます。
💻 コードエディタ
実行すると結果がここに表示されます
正解!見本と同じになりました。
次へ →
🏠 ホームへ

れんしゅうもんだい

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

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

未挑戦

問題 1: [3, 1, 4, 1, 5, 9, 2, 6] を降順に並べて表示しよう!

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

問題 2: 平均点と最高点・最低点を表示しよう!

実行結果
実行できたよ!
もう一度チャレンジ!
📄 見本の出力
平均: 84.0点 最高: 95点 最低: 70点
未挑戦

問題 3: 点数80以上の人だけランキング表示しよう!

実行結果
実行できたよ!
もう一度チャレンジ!
📄 見本の出力
1位: ゆき (95点) 2位: はな (92点) 3位: たろう (85点)
コピーしました!