Python勉強日記 #7 コンテナ
こんにちは、マエカワです。
今日もPythonの勉強を始めていきたいと思います。
今回はコンテナ(リスト、タプル、辞書)についてまとめていきます。
コンテナ
まず、コンテナとは書類棚のようなデータ構造を保持するものです。
一般的なコンテナとして、リスト、タプル、辞書の3つがあり、使用用途によって使い分けていきます。
コンテナに収納されているどのオブジェクトにもコンテナ内の位置を示すインデックスがあります。最初の要素のインデックスは0です。
リスト
リストは好きな順番でオブジェクトを保存しておけるコンテナです。
文字列、リスト、タプルのように、繰り返し処理で要素を1つずつ取り出せるオブジェクトは、イテラブル(繰り返し可能)です。
また、リストはミュータブル(変更可能)であり、オブジェクトを追加したり削除したりできます。
リストは角カッコに挟んで表します。
例
fruitというリストにApple、Orange、Pearというオブジェクトを保存し、インデックス2にあるPearを出力しています。
fruit=["Apple","Orange","Pear"]
fruit[2]
実行すると以下の出力結果が出ます。
'Pear'
タプル
タプルは、好きな順番でオブジェクトを保存しておけるコンテナです。
しかし、リストとは違う点は、タプルはイミュータブル(変更不可能)であるという事です。
そのため、一度タプルを作ると格納されているどの要素の値も変更することはできず、要素の追加や削除もできません。
タプルは丸カッコに挟んで表します。
例
fruitというタプルにApple、Orange、Pearというオブジェクトを保存し、fruitというタプルに Apple が含まれているかどうかを確認しています。
(コンテナの中に特定の要素が含まれているかどうかを確認する時は、in 演算子を使います。)
fruit=("Apple","Orange","Pear")
"Apple" in fruit
実行すると以下の出力結果が出ます。
True
辞書
辞書とは、オブジェクトを保存しておける組み込みのコンテナです。
リストやタプルと違う点は、辞書というのは2つのオブジェクトを関連付けて保持するコンテナであり、片方のオブジェクトを格納時や取得時に使うキーとして、もう片方のオブジェクトをバリューとしてキーにマッチング(関連付け)して保持します。
これをキーバリューペアと言い、このキーで辞書からバリューを取り出せるようになります。
バリューでキーを取り出すことはできません。
辞書はミュータブル(変更可能)なため、キーバリューペアを追加していくことはできるが、リストやタプルと違って、辞書に格納するオブジェクトの順番は指定できません。
例
fruit という名の辞書の中にキーバリューペアを作成し、その辞書の中にもう一つキーバリューペアを追加して、取り出してみた。
#fruit辞書の中にキーバリューペアを作成
fruit={"Apple":"Red",
"Peach":"Pink"}
#キーバリューペアを追加
fruit["Banana"]="Yellow"
#キーで値を取り出す
fruit["Banana"]
実行すると以下の出力結果が出ます。
'Yellow'
リストやタプル、辞書のバリューにはどんなオブジェクト(文字列や整数など)も使えます。
しかし、辞書のキーはバリューとは違い、イミュータブル(変更不可能)です。
したがって、文字列かタプルなら辞書のキーに使えるが、リストや辞書は辞書のキーに使えません。
まとめ
今回はコンテナ(リスト、タプル、辞書)を学びました。
Pythonの文法をササっと終わらせて、実際に活用できるプログラムを書く段階に早く入るために今後も頑張ります!