Python入門:コンテナのネスト
ネストとは
Pythonでは、主にリスト、ディクショナリ、タプル、セットの4種類のコンテナを扱えます。
コンテナは、複数の値(文字列、数値など)を保存できます。また、コンテナの中にコンテナを保存することも可能です。
a = [9,8,7,6]
b = [5,4,3,2]
#リストcにリストa、リストbを入れる
c = [a,b]
print(c)
[[9, 8, 7, 6], [5, 4, 3, 2]]
コンテナの中にコンテナが入ると二重構造、コンテナの中にコンテナを入れると三重構造になります。
このような多重構造をネストと呼びます。
a = [[1,2,3],[4,5,6]]
#1番目のリストを参照
print(a[0])
#2番目のリストの3番目の値を参照
print(a[1][2])
[1, 2, 3]
6
リスト、タプルは上のコードのようにして参照することができます。
また、ディクショナリもネストすることができます。
#ディクショナリの中にタプルをネスト
tupleA = (3,6,4)
tupleB = (4,9,8)
dict = {"a":tupleA,"b":tupleB}
print(dict)
#ディクショナリの中にセットをネスト
set1 = {3,6,4}
set2 = {4,9,8}
dict = {"a":set1,"b":set2}
print(dict)
{'a': (3, 6, 4), 'b': (4, 9, 8)}
{'a': {3, 4, 6}, 'b': {8, 9, 4}}
コンテナには、リスト、ディクショナリ、タプルの他にセットがあります。しかし、セットはインデックスやキーといった概念がないため、セットの中にコンテナをネストする機会ははあまりないでしょう。
練習問題
では、これまでの内容をもとに次のプログラムを作ってみましょう!
-
A君のテスト結果は、数学70点、国語82点、英語77点、
B君のテスト結果は、数学93点、国語65点、英語75点でした。
二人のテスト結果をディクショナリをネストしたもので保存し、A君の数学とB君の英語の点数を表示する。
解答例※あくまで一例です。
(1)
a = {"数学":70,"国語":82,"英語":77}
b = {"数学":93,"国語":65,"英語":75}
test = {
"A":a,
"B":
}
print(test)
#A君の数学
print(test["A"]["数学"])
#B君の英語
print(test["B"]["英語"])
{'A': {'数学': 70, '国語': 82, '英語': 77}, 'B': {'数学': 93, '国語': 65, '英語': 75}}
70
75
最後に
今回は、Pythonでのコンテナのネストについて解説しました。
もっとPythonを学びたい!という方はこちらの記事でPythonの基本的な構文を学習することが出来ますのでぜひ立ち寄ってみてください!