shinoblog-manabu

Progate(プロゲート)を使って初歩の初歩からプログラミング勉強をはじめました。無料から有料バージョンへ以降しつつ、自分辞書として活用しています。なるべく私と同じ初心者目線を使い、各プログラミング内容を説明したいです。

【独学プログラマー】辞書

辞書

 

辞書とは

 

オブジェクトを保存しておける組み込みのコンテナのこと。

 

 

どんなコンテナ?

2つのオブジェクトを関連付けて保持するコンテナ。

 

使い方

片方のつのオブジェクトを格納時・取得時のキーに使う

片方のつのオブジェクトをバリューとしてキーに関連付けつつ保持する。

 

上記の使用方法をキーバリューペアという。

 

 

 

キーバリューペアを辞書に追加するとどうなるのか?

答え→辞書からバリューを取り出せるようになる。辞書に追加すると、そのキーを使って辞書からバリューを取り出せるようになる

 

 

バリューからキーを取り出すことができるのか?

答え→できない。バリューからキーを取り出すことはできない。

 

 

新しくキューバリューペアを追加することはできるのか?

答え→できる。辞書はミュータプルなので追加可能である。

 

 

その他

・辞書に格納するオブジェクトの順番は指定できない。

・キーとバリューのペアを関連付けてデータを扱うことはとても便利である。

・キーバリューペアを辞書オブジェクト作成の時点においても追加可能。

 

辞書の表し方

辞書は下記図1,2のように波かっこに挟まれた形で表す。

 

図1

f:id:shinoblog-manabu:20210524085046p:plain



 

図2

f:id:shinoblog-manabu:20210524085100p:plain



 

 

キーバリューペアを辞書オブジェクト作成の時点にて追加する方法

 

キーとバリューをコロンで区切りつつ書く

 

 

注意点

キーバリューペアが1つのみの場合、末尾のカンマ※、をつける必要はない。

 

 

キーバリューペアw辞書の作成時に指定する例

 

 

f:id:shinoblog-manabu:20210524085127p:plain



 

 

尚、辞書は変更可能(ミュータブル)である。それを踏まえたあと、

辞書を作成したあとの、キーバリューペアに追加する構文は以下(エラーになっていたが、本書通りに作成。原因はググって調べよう!)

 

f:id:shinoblog-manabu:20210524085146p:plain

f:id:shinoblog-manabu:20210524085207p:plain

 

上記の例は最初の2つのバリューが文字列になっている。次いで最後のバリューは整数(1776)になっている。

 

注意点

辞書のキーは変更不可能(イミュータブル)でなければならない。

リストや辞書は辞書のキーには使えない。

 

 

下記はin演算子を使用する。

 

特徴

  • 特定のキーが辞書のキーに使われているかを確認できる。

  • 尚、inにおいて、特定のバリューが辞書のバリューに使われているかどうかを確認できない。

 

 

f:id:shinoblog-manabu:20210524085227p:plain



キューバリューペアを辞書か削除する方法

 

delキーワードを使う

 

辞書に追加されていないキーを使ったらどうなるのか?

キーを使ってバリューをとりだそうとすると、例外(エラー)が発生させる。

 

 

特定の「キー」を辞書に使われているか確認する方法

not in演算子を使用する

 

 

 

not in演算子を使って辞書に特定のキーが使われているか確認する

f:id:shinoblog-manabu:20210524085244p:plain

 

 

キューバリューペアを辞書から削除する方法

delキーワードを使用する

 

f:id:shinoblog-manabu:20210524085301p:plain

 

 

P82参照:「辞書を使ったプログラムの例」を写経してみよう

 

f:id:shinoblog-manabu:20210524085317p:plain

 

>>数字を入力してください:

と、コンソールされるはずなのだが、Atomでは出力にエラーがでるため割愛。

 

 

 

上記プログラムの辞書の特徴

 

f:id:shinoblog-manabu:20210524085332p:plain


今回はここまで。ありがとうございました。

誤字脱字・不適当な文章や表現がございましたら、お教え頂ければ幸いです。