本文へスキップ
ひもとくAI

リストと辞書

レッスン 4/5

リスト(list)を使いこなす

これまでのレッスンでもscores = [80, 65, 90, 72, 88]のようなリストを使ってきました。ここで改めて、よく使う操作を整理しておきましょう。

scores = [80, 65, 90, 72, 88]

scores[0]        # 80 (最初の要素。Pythonは0番目から数える)
scores[-1]       # 88 (最後の要素)
len(scores)      # 5  (要素の個数)
scores.append(95) # リストの末尾に95を追加

最後の行のscores.append(95)のように、値の後ろに.名前()を付けて呼び出す関数を メソッド と呼びます。「その値専用の関数」だと考えてください。appendはリスト専用のメソッドで、「このリストの末尾に追加する」という働きをします。この後の章でも、scores.mean()(平均を求める)のように、たくさんのメソッドが登場します。

「0番目から数える」という点は、初めて見ると戸惑うポイントです。scores[0]は「1番目」ではなく「先頭」を意味します。これは今後、NumPyの配列やpandasの表を扱うときも共通のルールなので、ここでしっかり慣れておきましょう。

リストは「複数の値をひとまとまりとして扱う」ための仕組みです。この「複数の値をまとめて扱う」という考え方は、後の単元で学ぶベクトルという数学的な概念と、非常に近い関係にあります(ベクトルについては数学の単元で改めて扱います)。

辞書(dict)でデータをひとまとめにする

リストが「複数の値を順番に並べたもの」だったのに対し、辞書(dict) は「名前(キー)と値のペア」を管理する仕組みです。

student = {
    "name": "太郎",
    "age": 20,
    "is_passed": True,
}

student["name"]  # "太郎"
student["age"]   # 20

例えば「1人の学生に関する情報」をまとめて扱いたいとき、リストで["太郎", 20, True]のように並べるより、辞書で{"name": "太郎", "age": 20, "is_passed": True}のように「何の値か」が分かる形で持たせる方が、コードが読みやすくなります。

実は、このコースの教材データ自体も、内部的にはこの辞書によく似た構造(YAMLというファイル形式)で管理されています。「1つの演習」を、question(問題文)・choices(選択肢)・correctChoice(正答)のような名前付きのまとまりとして表現する、という考え方です。

この後の単元で扱うpandasの表(DataFrame)も、大まかに言えば「辞書を集めたリストのようなもの」として理解できます。リストと辞書、この2つの組み合わせ方に慣れておくことが、データを扱う次の章の土台になります。

演習

演習を読み込んでいます…