メインコンテンツへスキップ
  1. 第03講 基本データ型(2/2; セット,ディクショナリ)/

ディクショナリ

ディクショナリ コレクション
目次

ディクショナリ
#

教科書 p.142(Lesson 6.2)

ディクショナリは,キーと値のペアを格納するコレクションです. 他の言語では,Map や Hash,連想配列と呼ばれることがあります. ディクショナリは,リストのインデックスの代わりに,キーと呼ばれる任意の型を用いて,対応するデータを格納します.

ディクショナリは波括弧 {} で囲み,キーと値のペアはコロン : で区切ります. キーと値のペアはカンマ , で区切ります.

>>> dic1 = { "one": 1, "two": 2, "three": 3, "four": 4, "five": 5 }
>>> dic1
{'one': 1, 'two': 2, 'three': 3, 'four': 4, 'five': 5}

ディクショナリの操作
#

ディクショナリに格納されている値を取得するには,リストのインデックスの代わりにキーを指定します. 存在しないキーを指定するとエラーになります.

値を追加するときは,ディクショナリ名[キー] = 値 とします. 既存のキーに対して値を代入すると,値が上書きされます. キーに文字列の値をそのまま利用する場合は,ディクショナリ名["キー"] のようにダブルクォート(シングルクォートでも良い)を忘れないようにしましょう.

>>> dic1 = { "one": 1, "two": 2, "three": 3, "four": 4, "five": 5 }
>>> dic1['one']   # 'one' というキーに対応する値(1)を取得
1
>>> dic1['six']   # 存在しないペアを取得しようとするとエラーになる.
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'six'
>>> dic1['six'] = 6   # 存在しないキーに対して値を代入すると新たなペアが追加される.
>>> dic1['six']
6
>>> dic1['one'] = 10  # 既存のキーに対して値を代入すると,値が上書きされる.
>>> dic1
{'one': 10, 'two': 2, 'three': 3, 'four': 4, 'five': 5, 'six': 6}

ディクショナリの繰り返し
#

ディクショナリもイテラブル(繰り返し可能なオブジェクト)であるため,for文を用いて繰り返し処理が可能です. ディクショナリの繰り返しには,次の3種類があります.

  • キーの一覧でループする(keysメソッド).
  • 値の一覧でループする(vlauesメソッド).
  • キーと値のペアでループする(itemsメソッド).
>>> dic1 = { "one": 1, "two": 2, "three": 3, "four": 4, "five": 5 }
>>> for key in dic1.keys():
...     print(key, dic1[key]) # キーとそれに対応する値を出力する.
...
one 1
two 2
three 3
four 4
five 5
>>> for key in dic1:  # dic1 をそのまま for 文に指定すると,キーの一覧でループする.
...     print(key, dic1[key])
...
# 出力結果は上記と同じ.
>>> for value in dic1.values():
...     print(value)   # 値のみを出力する.
...
1
2
3
4
5
>>> for key, value in dic1.items(): 
...     # キーと値のペアを取得して繰り返す.in の前後に 2 つの変数を指定する.
...     print(key, value) # キーと値のペアを出力する.
...
one 1
two 2
three 3
four 4
five 5