LoginSignup
22
33

More than 5 years have passed since last update.

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

Last updated at Posted at 2015-01-04

ディクショナリ

辞書型(ディクショナリ)は、キーバリューストアでデータを保存します。
キーバリューストアについて知らない人は、郵便番号を連想してみてください。
郵便番号は、典型的なキーバリューでデータを格納したシステムです。
キー: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 分岐)

22
33
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
33