Python | 2週間で身につく、アプリを作りながら学ぶPythonの基本 - 5日目

Python Python
スポンサーリンク

5日目のゴールとテーマ

5日目のテーマは 「複数の情報を“ひとまとめ”にして扱う」 です。
昨日は「複数人の名前」をリストで扱いましたよね。
今日はさらに一歩進んで、

  • 1人分の情報を「セット」で扱う
  • そのセットをリストに入れて「名簿のような構造」を作る
  • 辞書(dictionary)という強力なデータ構造を使う

ここまでを狙います。

今日のキーワードは 辞書(dict) です。
これを理解すると、アプリのデータ構造が一気に“現実に近い形”になります。


辞書(dict)とは何か

「名前」「年齢」「メールアドレス」などを“セット”で持てる箱

昨日の名簿アプリでは、名前と年齢を別々のリストで持ちました。

names = ["太郎", "花子"]
ages = [20, 18]
Python

これはこれで動きますが、
「名前と年齢がセットで1人分」という感覚が薄いですよね。

そこで登場するのが 辞書(dictionary) です。

辞書は「キー(名前)と値(中身)」のペアをまとめたデータ構造です。

person = {
    "name": "太郎",
    "age": 20
}
Python

これで「1人分の情報」をひとまとめにできます。


辞書の値を取り出す

キーを指定して中身を読む

辞書の中身は、キーを使って取り出します。

person = {"name": "太郎", "age": 20}

print(person["name"])
print(person["age"])
Python

実行結果はこうなります。

太郎
20

ここでの重要ポイントは、

  • リストは「番号」で取り出す
  • 辞書は「名前(キー)」で取り出す

という違いです。

辞書は「意味のある名前」でアクセスできるので、
コードがとても読みやすくなります。


辞書に新しい項目を追加する

「住所」や「メールアドレス」を後から足せる

辞書は、あとから項目を追加できます。

person = {"name": "太郎", "age": 20}

person["email"] = "taro@example.com"

print(person)
Python

実行結果はこうです。

{'name': '太郎', 'age': 20, 'email': 'taro@example.com'}

辞書は「柔軟に情報を増やせる」のが強みです。


辞書のリスト:アプリのデータ構造の基本形

「1人分の辞書」を「複数人分まとめたリスト」にする

ここまで来たら、アプリのデータ構造が一気に現実的になります。

people = [
    {"name": "太郎", "age": 20},
    {"name": "花子", "age": 18},
    {"name": "次郎", "age": 22}
]
Python

これは「名簿そのもの」です。

  • リスト → 複数人をまとめる
  • 辞書 → 1人分の情報をまとめる

この組み合わせは、Pythonでアプリを作るときの“最強パターン”です。


辞書のリストをループで処理する

全員の名前と年齢を表示する

辞書のリストを for で回すと、こうなります。

people = [
    {"name": "太郎", "age": 20},
    {"name": "花子", "age": 18},
    {"name": "次郎", "age": 22}
]

for person in people:
    print(person["name"] + "(" + str(person["age"]) + "歳)")
Python

実行結果はこうです。

太郎(20歳)
花子(18歳)
次郎(22歳)

ここでの重要ポイントは、

ループの中で「辞書1つ」が person に入る

ということです。


条件分岐と組み合わせる:20歳以上だけ表示

辞書の中の値を使ってフィルタする

辞書のリストは、条件分岐と相性が抜群です。

for person in people:
    if person["age"] >= 20:
        print(person["name"] + "さんは成人です")
Python

実行結果はこうです。

太郎さんは成人です
次郎さんは成人です

辞書の中の値を使って判断できるので、
アプリのロジックがとても書きやすくなります。


辞書のリストに追加する:appendで1人分を追加

入力された情報を辞書にしてリストへ

ユーザーから名前と年齢を入力して、
辞書にしてリストに追加する例です。

people = []

name = input("名前を入力してください: ")
age_text = input("年齢を入力してください: ")
age = int(age_text)

person = {"name": name, "age": age}
people.append(person)

print(people)
Python

実行例:

名前を入力してください: 太郎
年齢を入力してください: 20
[{'name': '太郎', 'age': 20}]

ここでの重要ポイントは、

辞書を作ってから append する

という流れです。


5日目のミニアプリ:コンソール版「名簿アプリ(辞書バージョン)」

名前と年齢を登録して、一覧表示する

今日の仕上げとして、辞書を使った名簿アプリを作ります。

print("=== 名簿アプリ 5日目バージョン ===")

people = []

while True:
    name = input("名前を入力してください(終了するには空のままEnter): ")

    if name == "":
        print("入力を終了します。")
        break

    age_text = input("年齢を入力してください: ")
    age = int(age_text)

    person = {"name": name, "age": age}
    people.append(person)

print("=== 名簿一覧 ===")

if len(people) == 0:
    print("誰も登録されていません。")
else:
    for i in range(len(people)):
        person = people[i]
        print(str(i + 1) + "人目: " + person["name"] + "(" + str(person["age"]) + "歳)")
Python

実行すると、
「名前+年齢」をセットで登録できる名簿アプリになります。


5日目で一番大事な感覚

「1件分の情報は辞書で持つ」「複数件はリストでまとめる」

今日あなたに持ってほしい感覚はこれです。

  • 辞書(dict)は「1件分の情報」をまとめる箱
  • リスト(list)は「複数件の情報」をまとめる箱
  • 辞書のリストは「アプリのデータ構造の基本形」

この形が理解できると、
タスク管理アプリ、商品管理アプリ、メモアプリなど、
ほとんどのアプリが作れるようになります。


5日目のまとめ

今日のキーポイントを短く整理すると、

  • 辞書(dict)は「キーと値のセット」で情報をまとめられる
  • person["name"] のようにキーでアクセスする
  • 辞書はあとから項目を追加できる
  • 辞書のリストは「現実のデータ構造」に近い
  • 辞書+リスト+for+if の組み合わせでアプリが作れる

もし余裕があれば、今日の名簿アプリに次の機能を足してみてください。

  • 年齢が20歳以上の人だけ表示する
  • 名前で検索できる
  • 年齢の平均を計算して表示する

どれも辞書とリストの練習になります。
ここを乗り越えると、Pythonで作れるアプリの幅が一気に広がります。

タイトルとURLをコピーしました