【Python入門 #6】たくさんのデータを整理しよう!リストと辞書の使い方をマスター

ALL

こんにちは、Tech Samuraiです!
前回の記事「【Python入門 #5】面倒な作業はPCにお任せ!forとwhileループで繰り返し処理を学ぼう」では、ループを使って反復作業を自動化する方法を学びましたね。

これまでの冒険で、私たちはname = "Tech Samurai"のように、一つの変数に一つのデータを入れてきました。しかし、もしクラスの生徒全員の名簿や、買い物リスト、個人のプロフィール情報(名前、年齢、職業など)のように、たくさんのデータをまとめて扱いたい場合はどうでしょう? member1, member2, member3…と無限に変数を買い足していくのは、とても非効率です。

今回のテーマは、そんな多数のデータを賢く整理するための特別な「容器」、データ構造です。その中でも特に重要で、最もよく使われる**「リスト」**と**「辞書」**という2つの強力な道具の使い方を探検します。これらをマスターすれば、あなたはプログラムで扱える情報の幅が劇的に広がります!


順番が決まっているデータの集まり:「リスト」

リスト (list) は、複数のデータを**順番に並べて**格納できる、最も基本的なデータ構造です。

例えるなら… 「買い物リスト」や、ロッカーのように「番号が決まっている棚」をイメージしてください。何がどの順番で入っているかが重要です。

リストの作り方とアクセス

リストは、角括弧 `[ ]` を使い、各データをカンマ `,` で区切って作ります。

# 3人のメンバーからなるリストを作成
members = ["Tech Samurai", "Ninja Python", "Geek Sensei"]
print(members)

# リストの要素にアクセスするには「インデックス番号」を使う
# 重要:番号は 0 から始まる!
print(f"最初のメンバー: {members[0]}")
print(f"2番目のメンバー: {members[1]}")

# -1 を使うと末尾の要素にアクセスできる
print(f"最後のメンバー: {members[-1]}")

実行結果:

['Tech Samurai', 'Ninja Python', 'Geek Sensei']
最初のメンバー: Tech Samurai
2番目のメンバー: Ninja Python
最後のメンバー: Geek Sensei

リストの操作

リストは非常に柔軟で、後から要素を追加、変更、削除することができます。

scores = [80, 95, 72]
print(f"元の点数: {scores}")

# 2番目(インデックス1)の要素を更新
scores[1] = 100
print(f"更新後の点数: {scores}")

# 末尾に新しい要素を追加 (append)
scores.append(88)
print(f"追加後の点数: {scores}")

# 末尾の要素を削除 (pop)
removed_score = scores.pop()
print(f"削除された点数: {removed_score}")
print(f"削除後の点数: {scores}")

リストとforループの相性

リストは、forループと組み合わせることで真価を発揮します。リストの全要素に対して、同じ処理を簡単に行うことができます。

for member in members:
    print(f"{member}さん、こんにちは!")

名前付きでデータを管理する:「辞書」

辞書 (dict) は、「キー」と「値」をペアにしてデータを格納するデータ構造です。

例えるなら… 実際の「国語辞典」や、スマホの「連絡先」をイメージしてください。番号(インデックス)で探すのではなく、「Tech Samurai」という名前(キー)で、その人の電話番号(値)を探しますよね。

辞書の作り方とアクセス

辞書は、波括弧 `{ }` を使い、キー: 値 のペアをカンマ `,` で区切って作ります。キーは、そのデータを一意に特定するための「ラベル」です。

# Tech Samurai のプロフィールを辞書で作成
profile = {
    "name": "Tech Samurai",
    "birth_year": 1996,
    "skills": ["Python", "WordPress", "Web開発"]
}
print(profile)

# 値にアクセスするには、インデックス番号ではなく「キー」を使う
print(f"名前: {profile['name']}")
print(f"スキルの一つ: {profile['skills'][0]}") # リストと組み合わせることも可能

実行結果:

{'name': 'Tech Samurai', 'birth_year': 1996, 'skills': ['Python', 'WordPress', 'Web開発']}
名前: Tech Samurai
スキルの一つ: Python

辞書の操作

辞書も、後からペアを追加、変更、削除できます。

# 値を更新
profile['birth_year'] = 1997
print(f"更新後の誕生年: {profile['birth_year']}")

# 新しいキーと値のペアを追加
profile['location'] = "Japan"
print(f"追加後のプロフィール: {profile}")

# キーを指定してペアを削除 (del)
del profile['birth_year']
print(f"削除後のプロフィール: {profile}")

辞書とforループ

辞書をforループで使う場合、.items()メソッドを使うと、キーと値の両方を同時に取り出すことができて便利です。

for key, value in profile.items():
    print(f"{key}: {value}")

リストと辞書の使い分け

この2つのデータ構造を、いつ、どちらを使えばいいのでしょうか?

  • リストを使うとき:
    • データの**順番**が重要な場合。(例:ランキング、手順、履歴)
    • 単純に複数のデータをひとまとめにしたい場合。
  • 辞書を使うとき:
    • 各データに**意味のある名前(ラベル)**を付けて管理したい場合。(例:個人のプロフィール、設定情報)
    • データの順番は重要でなく、キーを使って素早く情報を取り出したい場合。

まとめ

今回は、たくさんのデータを整理するための、2つの強力なデータ構造を学びました。

  • リスト: 順番に並んだデータの集まり。アクセスには**番号(インデックス)**を使う。
  • 辞書: キーと値のペアの集まり。アクセスには**名前(キー)**を使う。

これらのデータ構造を使いこなすことで、あなたはより複雑で、より現実的なデータをプログラムで扱えるようになります。

さて、変数、演算子、if文、ループ、そしてデータ構造と、プログラミングの基本的な部品はほぼ全て揃いました。しかし、プログラムが長くなってくると、同じようなコードを何度も書く場面が出てきます。次回は、処理を部品としてまとめ、再利用可能にするための**「関数」**の世界を探検します。お楽しみに!

コメント

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