##ディクショナリ
辞書型(ディクショナリ)は、キーバリューストアでデータを保存します。
キーバリューストアについて知らない人は、郵便番号を連想してみてください。
郵便番号は、典型的なキーバリューでデータを格納したシステムです。
キー:107-0052 バリュー:東京都港区赤坂
キー:160-0021 バリュー:東京都新宿区歌舞伎町
他にも、学校の学籍番号と生徒名の関係もキーバリューと言えるでしょう。
Pythonではディクショナリを
d = {'key1' : 'Value1', 'key2' : 'Value2'}
のように定義します。
以下のプログラムをコピーして、実行してください。それぞれの機能を説明します。
d = {'key1' : 'Value1', 'key2' : 'Value2'}
print("len(d) {0}".format(len(d)))
print("min(d) {0}".format(min(d)))
print("max(d) {0}".format(max(d)))
dic_d_key1 = 'key1' in d
dic_d_key3 = 'key3' in d
print("dic_d_key1 {0}".format(dic_d_key1))
print("dic_d_key3 {0}".format(dic_d_key3))
print("d[key1 {0}".format(d['key1']))
print("d[key1 {0}".format(d.get('key1')))
print("d[key1 {0}".format(d.get('key3')))
print("d[key1 {0}".format(d.get('key3','No Existance')))
d['key1'] = 'NewValue1'
d['key3'] = 'Value3'
del d['key2']
print("d {0}".format(d))
print(d.pop('key3'))
print("d {0}".format(d))
ディクショナリ内の要素の存在確認
キー in ディクショナリ でディクショナリ内に要素が存在するかを確認できます。
len(ディクショナリ)、max(ディクショナリ)、min(ディクショナリ)
**len(ディクショナリ)**と記述することで、ディクショナリ内のデータの数を取得できます。
max(ディクショナリ)とmin(ディクショナリ)は、ディクショナリ内のデータが最大/最小のデータのキーを返します。
データの取得
ディクショナリでバリューを取得する場合は、キーを指定します。
**ディクショナリ[キー]で取得できますが、この記法の場合、ディクショナリに存在しない
キーを指定した場合、エラーが発生します。
キー in ディクショナリでキーが存在することを確認して処理を行う方法もありますが、
もう1つのキーの指定方法がディクショナリ.get(キー)**です。こちらはディクショナリに存在しない
キーを指定してもエラーにはなりません。さらに、
**ディクショナリ.get(キー,キーが存在しない場合のバリュー)**と記述することで、
キーが存在しない場合に返す値を設定することが出来ます。
データの追加・更新
ディクショナリ[キー] = バリュー
キーがディクショナリ内に存在しない場合はデータの追加、存在する場合はバリューの更新となります。
データの削除
del ディクショナリ[キー]
キーとキーに対応したバリューのデータを削除します。ただし、ディクショナリに存在しない
キーを指定した場合、エラーが発生します。
**ディクショナリ.pop(キー)**は、プログラムの出力結果でも分かるように、バリューを取得した上で削除します。
(箱から取り出す処理をイメージしてみてください)
ただし、こちらもディクショナリに存在しないキーを指定した場合、エラーが発生します。
キー in ディクショナリでキーが存在することを確認して処理を行う方法もありますが、
popはgetと同様に、**ディクショナリ.pop(キー,キーが存在しない場合のバリュー)**と記述することで、
エラーを発生することなくキーが存在しない場合のバリューを返すよう記述することが可能です。