入れ子構造とは、データの中に、さらにデータが入っている状態のことです。
- リストの中にリスト
- 辞書の中に辞書
- 辞書の中にリスト
入れ子構造(ネスト)は、上記のようなデータ構造です。
リストの中にリスト
numbers = [[1, 2], [3, 4], [5, 6]]
print(numbers)上記のコードは、リストの中にリストがある例です。
[[1, 2], [3, 4], [5, 6]]上記は、実行結果です。
このコードでは、大きなリストの中に [1, 2] [3, 4] [5, 6] という小さなリストが入っています。
これが入れ子構造です。
numbers = [[1, 2], [3, 4], [5, 6]]
print(numbers[0])
print(numbers[0][1])上記のコードは、値を取り出す例です。
[1, 2]
2上記は、実行結果です。
numbers[0] は、インデックス番号0の1番目の最初のリストを取り出します。
これにより、[1, 2] の小さなリストを取り出せています。
numbers[0][1] は、最初にインデックス番号0の、1番目の最初のリストを取得します。
その後、取得したリストの中の、インデックス番号1の、2番目の値を取り出しています。
これにより、2 の値を取り出せています。
辞書の中に辞書
person = {"name": "Taro", "info": {"age": 25, "job": "Designer"}}
print(person["info"]["age"])上記のコードは、辞書の中に辞書がある例です。
25上記は、実行結果です。
このコードでは、"info" の中に、さらに辞書が入っています。
そのため、person["info"]["age"] のように、キーを続けて指定して値を取り出します。
リストの中に辞書
people = [{"name": "Taro", "age": 25}, {"name": "Hanako", "age": 30}]
print(people)上記のコードは、リストの中に辞書が入る例です。
[{'name': 'Taro', 'age': 25}, {'name': 'Hanako', 'age': 30}]上記は、実行結果です。
このコードでは、リストの中に複数の辞書が入っています。
つまり、
- 1人目の情報
- 2人目の情報
をまとめて管理しています。
people = [{"name": "Taro", "age": 25}, {"name": "Hanako", "age": 30}]
print(people[0]["name"])上記のコードは、値を取り出す例です。
Taro上記は、実行結果です。
このコードでは、people[0] で最初の辞書を取り出し、その後に ["name"] で名前を取得しています。
辞書の中にリスト
person = {"name": "Taro", "skills": ["Python", "Rhino", "Grasshopper"]}
print(person)上記のコードは、辞書の中にリストが入る例です。
{'name': 'Taro', 'skills': ['Python', 'Rhino', 'Grasshopper']}上記は、実行結果です。
このコードでは、辞書の中にリストが入っています。
例えば、
- 名前
- 持っているスキル一覧
のようなデータ構成でよく使います。
person = {"name": "Taro", "skills": ["Python", "Rhino", "Grasshopper"]}
print(person["skills"][1])上記のコードは、値を取り出す例です。
Rhino上記は、実行結果です。
まず、person["skills"] でリストを取り出し、その後 [1] でインデックス番号1の、2番目の値を取得しています。
よくある使い方
このような入れ子構造は、
- 商品一覧
- ユーザー情報
- 座標データ
などで非常によく登場します。




Comment