カテゴリ: Python 更新日: 2025/12/25

Pythonでリストや辞書をネストする方法!多次元データ構造の作り方を解説

Pythonでリストや辞書をネストする方法!多次元データ構造の作り方を解説
Pythonでリストや辞書をネストする方法!多次元データ構造の作り方を解説

先生と生徒の会話形式で理解しよう

生徒

「Pythonでリストや辞書を入れ子(ネスト)にするって聞いたんですが、難しそうでよくわかりません…」

先生

「ネストは最初は難しそうに見えるけど、実はとても便利なデータの整理方法なんだよ。一緒にわかりやすくやってみようか!」

生徒

「お願いします!どんなときに使うんですか?」

先生

「たとえば、クラスの生徒情報や商品の一覧など、複雑なデータをまとめて管理したいときに役立つんだ。リストの中にリスト、辞書の中にリストなど、いろんな組み合わせができるよ。」

1. ネスト(入れ子構造)とは?

1. ネスト(入れ子構造)とは?
1. ネスト(入れ子構造)とは?

ネスト(nested)とは、リストや辞書の中に別のリストや辞書を入れることです。

こうすることで、表のようなデータや、階層的な情報を整理して扱えるようになります。

2. リストの中にリストを入れる(多次元リスト)

2. リストの中にリストを入れる(多次元リスト)
2. リストの中にリストを入れる(多次元リスト)

まずは、リストの中にリストを入れてみましょう。これは「表(テーブル)」のようなイメージです。


scores = [
    [80, 90, 70],
    [85, 95, 65],
    [78, 88, 92]
]
print(scores[1])     # 2番目の生徒の点数
print(scores[1][0])  # その生徒の1科目目

[85, 95, 65]
85

このように、リストを重ねることで「行と列」のようなデータを扱うことができます。

3. 辞書の中にリストを入れる(情報をまとめる)

3. 辞書の中にリストを入れる(情報をまとめる)
3. 辞書の中にリストを入れる(情報をまとめる)

辞書の中にリストを入れると、「あるキーに対して複数の値を持たせたい」ときに便利です。


student = {
    "名前": "たろう",
    "点数": [80, 75, 90]
}
print(student["点数"])
print(student["点数"][2])

[80, 75, 90]
90

このように、辞書のキーに対して複数の値を一度に管理できます。

4. リストの中に辞書を入れる(複数の情報セット)

4. リストの中に辞書を入れる(複数の情報セット)
4. リストの中に辞書を入れる(複数の情報セット)

今度は、リストの中に辞書を入れてみましょう。これは「名簿」や「商品一覧」のようなものに使えます。


students = [
    {"名前": "たろう", "年齢": 18},
    {"名前": "はなこ", "年齢": 17}
]
print(students[0]["名前"])

たろう

リストの中に複数の辞書を並べることで、同じ構造のデータをまとめて扱うことができます。

5. 辞書の中に辞書を入れる(階層構造の表現)

5. 辞書の中に辞書を入れる(階層構造の表現)
5. 辞書の中に辞書を入れる(階層構造の表現)

辞書の中にさらに辞書を入れると、階層的な情報を表現できます。


profile = {
    "名前": "たろう",
    "連絡先": {
        "電話": "080-1234-5678",
        "メール": "taro@example.com"
    }
}
print(profile["連絡先"]["メール"])

taro@example.com

このようにして、データの中にグループを作ることができ、整理しやすくなります。

6. ネスト構造の注意点

6. ネスト構造の注意点
6. ネスト構造の注意点

ネストが深くなると、コードが読みづらくなったり、インデックスやキーのミスでエラーが出やすくなります。

以下のようなミスに気をつけましょう。


students = [
    {"名前": "たろう", "年齢": 18}
]
print(students[1]["名前"])  # ← エラー(要素が1つしかない)

IndexError: list index out of range

ネストされたデータにアクセスするときは、どの構造になっているかをきちんと理解しておくことが大切です。

7. ネストを活用するシーンの例

7. ネストを活用するシーンの例
7. ネストを活用するシーンの例

以下のような場面では、ネストされたリストや辞書がとても便利です。

  • 生徒ごとの成績データ
  • 商品一覧と価格・在庫情報
  • 住所帳や連絡先管理
  • アンケート結果やユーザー回答

ネストを使えば、Pythonで複雑なデータも整理して扱いやすくできます。

まとめ

まとめ
まとめ

ネスト構造を理解して多次元データを扱えるようになろう

この記事では、Pythonでリストや辞書をネストする方法について、基本から具体例まで順を追って学んできました。 ネストとは、リストの中にリストを入れたり、辞書の中にリストや辞書を入れたりする入れ子構造のことを指します。 この考え方を理解することで、Pythonでは単純なデータだけでなく、現実世界に近い複雑な情報を整理して管理できるようになります。 生徒名簿、成績表、商品一覧、ユーザー情報、連絡先管理など、実際のアプリケーションや業務システムでも、 ネストされたデータ構造は非常によく使われています。

リストの中にリストを入れる多次元リストは、表や行列のようなデータを扱うときに役立ちます。 一方で、辞書の中にリストを入れる構造は、ある項目に対して複数の情報をまとめたい場合に便利です。 さらに、リストの中に辞書を入れることで、同じ形式のデータを複数まとめて扱うことができ、 辞書の中に辞書を入れることで、階層構造を持つデータを自然な形で表現できます。 これらを組み合わせることで、Pythonは非常に柔軟なデータ管理が可能になります。

ネスト構造を使うときに意識したいポイント

ネストされたデータは便利な反面、構造が複雑になるとコードが読みづらくなりやすいという注意点もあります。 インデックスの指定ミスや、存在しないキーへのアクセスはエラーの原因になりやすいため、 今どのリストや辞書を操作しているのかを常に意識することが重要です。 データ構造を紙に書いたり、コメントを入れたりしながら確認すると、 ネストの理解が深まり、ミスも減らすことができます。

また、ネストを使う場面では「本当にネストが必要か」を考えることも大切です。 必要以上に深いネストは可読性を下げるため、データのまとまり方を意識して設計することで、 後から見ても分かりやすいプログラムになります。 Python初心者のうちから、データ構造を意識した書き方に慣れておくことは、将来的にも大きな力になります。

ネスト構造を使ったサンプルプログラム

ここで、これまで学んだ内容をまとめたサンプルプログラムを見てみましょう。 リストと辞書を組み合わせたネスト構造の基本的な使い方を確認できます。


class_data = [
    {
        "名前": "たろう",
        "成績": [80, 90, 70],
        "連絡先": {
            "電話": "080-0000-0001",
            "メール": "taro@example.com"
        }
    },
    {
        "名前": "はなこ",
        "成績": [85, 88, 92],
        "連絡先": {
            "電話": "080-0000-0002",
            "メール": "hanako@example.com"
        }
    }
]

print(class_data[0]["名前"])
print(class_data[1]["成績"][2])
print(class_data[0]["連絡先"]["メール"])

このように、ネストされたリストや辞書を使うことで、 一人ひとりの情報をひとまとめにしながら、必要なデータに正確にアクセスできます。 Pythonで多次元データ構造を扱う力は、プログラミングの基礎力を大きく底上げしてくれます。

先生と生徒の振り返り会話

生徒「ネストって難しそうでしたけど、データを整理するための考え方なんですね。」

先生「そうだよ。リストや辞書を組み合わせるだけで、現実に近い情報を表現できるんだ。」

生徒「生徒名簿や成績表の例を見ると、使いどころがよく分かりました。」

先生「理解できているね。どんな構造になっているかを意識するのが大事だよ。」

生徒「インデックスやキーの指定には気をつけないといけないですね。」

先生「その通り。ネスト構造を正しく扱えるようになると、Pythonでできることが一気に広がるよ。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Pythonでネストとは何ですか?初心者向けに入れ子構造の意味を教えてください

Pythonにおけるネストとは、リストや辞書の中に別のリストや辞書を入れる「入れ子構造」のことです。表のようなデータや階層的な情報を整理して扱うのに便利です。
カテゴリの一覧へ
新着記事
New1
Flask
Flaskアプリの作り方を基礎から学ぼう!初心者が覚えるべき開発の流れとは?
New2
Flask
Flask-WTFでファイルアップロードフォームを完全ガイド!初心者でもわかる画像やPDFのアップロード方法
New3
Flask
FlaskでCSRF対策を実装する方法!安全なフォーム送信を学ぼう
New4
Python
Pythonの文字列型(str)を完全解説!連結・分割・検索の方法を紹介
人気記事
No.1
Java&Spring記事人気No1
Django
Django環境構築の全手順を完全解説!初心者でも迷わないPython・Djangoセットアップガイド
No.2
Java&Spring記事人気No2
Flask
Flask-Loginでユーザー認証を完全ガイド!初心者でもわかるログイン処理の作り方
No.3
Java&Spring記事人気No3
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.4
Java&Spring記事人気No4
Python
PythonでHello Worldを表示するには?初心者向けに最初の1行を実行してみよう
No.5
Java&Spring記事人気No5
Python
Pythonで定数を定義する方法!変更されない変数の書き方と命名ルールを初心者向けに解説
No.6
Java&Spring記事人気No6
Python
Pythonのmatch文(パターンマッチング)とは?switch文の代替としての使い方をやさしく解説
No.7
Java&Spring記事人気No7
Flask
FlaskアプリをNginx + Gunicornで本番運用する方法!初心者でもわかるデプロイ構成の基本
No.8
Java&Spring記事人気No8
Python
Pythonでリストを文字列に変換する方法を完全ガイド!初心者でもわかるjoinの使い方