Python基礎講座(7 ディクショナリ)

More than 3 years have passed since last update.


ディクショナリ

辞書型(ディクショナリ)は、キーバリューストアでデータを保存します。

キーバリューストアについて知らない人は、郵便番号を連想してみてください。

郵便番号は、典型的なキーバリューでデータを格納したシステムです。

キー:107-0052 バリュー:東京都港区赤坂

キー:160-0021 バリュー:東京都新宿区歌舞伎町

他にも、学校の学籍番号と生徒名の関係もキーバリューと言えるでしょう。

Pythonではディクショナリを

d = {'key1' : 'Value1', 'key2' : 'Value2'}

のように定義します。

以下のプログラムをコピーして、実行してください。それぞれの機能を説明します。


dictionary_explain.py

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(キー,キーが存在しない場合のバリュー)と記述することで、

エラーを発生することなくキーが存在しない場合のバリューを返すよう記述することが可能です。

次: Python基礎講座(8 分岐)