みなさんごきげんよう。
おぎーです。
この記事ではコンテナのタプル・辞書について初心者目線で優しく解説しています。
それでは早速学習に入っていきましょう。
Google Colaboratoryを開いて学習を進める準備をしましょう。
タプル
タプルとは何か。
言葉の説明から入りましょう。
タプルとは、自分の好きな順にオブジェクトを保存しておくことができるコンテナのことを意味します。
タプルは、イミュータブルです。
前回はミュータブルの学習もしましたね。
こちらの記事でも紹介しましたが、ミュータブルは、
変更可能という意味でした。
イ + ミュータブルで、変更不可能です。
覚えておきましょう。
変更不可能ということは、一度タプルというコンテナを作ったら、タプル内の内容を変更できないということになります。
もちろん、タプル内に要素を追加したり削除することもできません。
タプルを記すとこうなります。
x = ()
x
このコードを出力すると、
()
が出てくると思います。
このような書き方を使って、要素を列挙します。
x = ("こんにちは","おはよう",100)
x
このように、丸カッコの中に要素を列挙します。
出力すると、
(’こんにちは’, ‘おはよう’, 100)
と出てくると思います。
さきほど、タプルは一度作成したら要素の変更ができないと説明しましたが、実際の例を出します。
x = ("こんにちは","おはよう","さようなら")
x[1] = "やあ"
このように、「おはよう」という要素を「やあ」に変更しようとしても、
TypeErrorと表示され、例外を発生させます。
タプル内の要素を取り出すことは可能です。
タプル内の要素を取り出すときは、リストと同様にインデックスで位置を指定します。
x = ("こんにちは","おはよう","さようなら")
x[2]
このように、インデックス番号で位置を指定すれば、このコードでは、
「さようなら」のみが出力されます。
また、タプルに特定の要素が含まれているのかどうかを調べるためには、in演算子を使用します。
x = ("こんにちは","おはよう","さようなら")
"おはよう" in x
おはようという要素がxというタプルの中に存在するかどうかを調べるためのコードです。
もちろん、おはようはxのタプル内の要素ですので出力結果は、
「True」となります。
not in演算子というものもあり、要素がタプルに入っていないかどうかを調べることができます。
x = ("こんにちは","おはよう","さようなら")
"おはよう" not in x
おはようという要素はxに入っていないかどうかという意味なので、
入っているから「False」という出力結果となります。
ここまで学習を進めて、なぜ追加も削除もできない不便そうなものを学習したのかと疑問を持ったかもしれません。
実際に応用的なコードを入力するときには、一度作成したらその後変わってほしくない値を扱うときに便利なものとなります。
たとえば、地図のある地点の座標を要素として扱いたいときは、タプルを使用してイミュータブルとした方が良いのです。
また、タプルはリストと異なり、次に説明する辞書型のキーに使用することができます。
辞書
リスト、タプルと学習してきましたが、辞書もオブジェクトを保存できる組み込みコンテナです。
辞書では、2つのオブジェクトを関連付けて保持するコンテナです。
一方のオブジェクトは、格納するときや取得するときのキーとして使用され、
もう一方のオブジェクトは、バリューとしてキーにマッピングされて(関連づけられて)保持されます。
このようなキーとバリューの関係性から、キーバリューペアという言葉が存在します。
新しいキーバリューペアを辞書に追加すると、そのキーで辞書からバリューを取り出すことができます。
ここまで読んだ人はなんとなく分かると思いますが、私たちが使用した経験のある辞書でいうところの、
「索引で出てくる言葉」がキー、
「その言葉の意味」がバリュー、
といった感じですね。
なので、バリューからキーは取り出すことはできません。
私たちが知らない言葉を辞書で調べるとき、知らない言葉の意味を調べたいのにその意味から調べようとすることはないですよね。
辞書はミュータブルなので、要素を追加したり削除したりすることが可能です。
辞書をコードで表現するためには次のようになります。
x = {}
x
このように、
{}(波カッコ)を使用することでコンピュータは辞書というコンテナだと認識します。
そして、波カッコの中にキーバリューペアを要素として書きます。
x = {"くだもの": "みかん", "あいさつ": "おはよう"}
x
キーバリューペアは、
「キー:バリュー」というように、
左側にキー、右側にバリューを記載します。
さきほども言いましたが、辞書はミュータブルです。
したがって、辞書を作成したあとにキーバリューペアを追加するには、次の構文で書きます。
[辞書名] [ [ キー] ] = [ バリュー]
x = {"くだもの":"みかん", "あいさつ":"おはよう"}
x["やさい"] = "にんじん"
x
このようにキーバリューペアを辞書に追加することができます。
また、値を取り出すときは、
[辞書名] [[キー]]
でオッケーです。
x = {"くだもの":"みかん", "あいさつ":"おはよう"}
x["くだもの"]
このように入力すれば、「みかん」のみが出力されます。
タプルのときも使用したin演算子を使用すれば、辞書内に記載されているキーを調べることができます。
例えばこんな感じです。
x = {"くだもの":"みかん", "あいさつ":"おはよう"}
"くだもの" in x
xという辞書の中に「くだもの」というキーはあるかどうかを調べるためのコードです。
この場合は、xの中にくだものというキーはあるので、
Trueとなります。
一方で、not in演算子を使用すれば、辞書内に特定のキーがないかどうかを確認することができます。
x = {"くだもの":"みかん", "あいさつ":"おはよう"}
"くだもの" not in x
このコードでは、xの中にくだものという要素がなければTrue、あればFalseといった結果が出力されますので、Trueが出力されます。
また、キーバリューペアを辞書から削除する際は、
delキーワードを使います。
次のようなコードになります。
x = {"くだもの": "みかん", "あいさつ": "おはよう"}
del x["くだもの"]
x
以上のように辞書はミュータブルであることから、いくつかの操作ができるので覚えておきましょう。
まとめ
今回はタプルと辞書について学習しました。
おそらくこれまで学習した内容も日々実践の機会がなければ錆びついてしまいます。
これまで私たちが発信してきた記事を辞書的に使用するのも、学習内容の定着を図るにはうってつけだと思います。
ぜひ活用してくださいね。
それでは最後に、この記事の内容の確認をしましょう。
・タプルはどのようなカッコで表現する?
・辞書はどのようなカッコで表現する?
辞書はミュータブルだけど要素の追加・削除・検索はどうやってやるの?
この記事で使用したコードはGitHubに載せておきますので、ぜひ活用してください。
GitHubでの閲覧方法は次の記事を参考にしてください。
それではまた次回お会いしましょう。
おぎー