解説
データベースでは、結果を並べ替える ORDER BY と、複数の表を関連付ける JOIN がよく使われます。
ここでは生徒の表(club_id を持つ)と、部活の表(club_id と部活名を持つ)を用意します。両方に共通する club_id を「キー」として、生徒に対応する部活名を引き当てるのが JOIN の考え方です。辞書を作っておくと、キーから素早く対応データを取り出せます。
なぜ1つの大きな表にまとめず別々の表に分けるのか考えてみましょう(重複を減らせます)。
書き方
・{c["club_id"]: c["club_name"] for c in clubs}: 辞書内包表記でキー→値の対応表を作る。
・sorted(students, key=lambda s: s["name"]): name をキーに並べ替える(ORDER BY 相当)。
・club_map.get(キー, '(不明)'): キーから対応値を取り出す。無ければ既定値を返す(JOIN 相当)。
・f"...{s['name']}...": f文字列で辞書の値を埋め込む。書いて動かす
この回の課題
生徒の表と部活の表を club_id をキーに結合し、名前で並べ替えて各生徒の部活名を引き当ててみよう。
コードはあなたの端末の中だけで動きます(サーバーには送られません)。進み具合もこのブラウザに保存されます。
もっと本格的に使うなら
Windows版 InsightPy なら、書いたコードを保存して業務の自動化まで進められます。学習センターはずっと無料です。