Pythonの入れ子構造とは?|Python基礎

入れ子構造とは、データの中に、さらにデータが入っている状態のことです。

  • リストの中にリスト
  • 辞書の中に辞書
  • 辞書の中にリスト

入れ子構造(ネスト)は、上記のようなデータ構造です。

リストの中にリスト

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

Translate »