1. 概要
Pythonでは、値をまとめて使用するデータ構造として辞書(ディクショナリ)型があります。
辞書の使い方について紹介していきます。
2. 辞書の基本操作
2.1. 辞書の作り方
辞書を作るにはキー : 値
のペアをカンマで区切って使います。
test = { 'A': 1, 'B': 2, 'C': 3 } print(test)
# Output {'A': 1, 'B': 2, 'C': 3}
空の辞書を作るには{ }
を使います。
test = {}
print(test)
# Output {}
別の作り方としてdict()関数
で空の辞書を作ることもできます。
test = dict() print(test)
# Output {}
2.2. キーによる値の取得
辞書に格納されているキーを指定すれば、値を取得することができます。
test = { 'A': 1, 'B': 2, 'C': 3 } print(test) print(test['A']) print(test['B']) print(test['C'])
# Output {'A': 1, 'B': 2, 'C': 3} 1 2 3
辞書内に存在しないキーを指定すると、KeyErrro
が返されます。
test = { 'A': 1, 'B': 2, 'C': 3 } print(test['D'])
# Output Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 'C'
2.3. キーによる要素の追加・変更・削除
辞書に要素を追加するには、新しいキーを指定して値を代入します。
test = { 'A': 1, 'B': 2, } # 変更前 print(test) test['C'] = 3 # 変更後 print(test)
# Output {'A': 1, 'B': 2} {'A': 1, 'B': 2, 'C': 3}
辞書の要素を変更するには、既存のキーを指定して新しい値を代入します。
test = { 'A': 1, 'B': 2, 'C': 3, } # 変更前 print(test) test['C'] = 99 # 変更後 print(test)
# Output {'A': 1, 'B': 2, 'C': 3} {'A': 1, 'B': 2, 'C': 99}
辞書の要素を削除するには、キーを指定してdel()関数
を使います。
test = { 'A': 1, 'B': 2, 'C': 3, } # 変更前 print(test) del test['C'] # 変更後 print(test)
# Output {'A': 1, 'B': 2, 'C': 3} {'A': 1, 'B': 2}
2.4. 辞書の結合
二つの辞書を結合するにはupdate()関数
を使います。
test_1 = { 'A': 1, 'B': 2, } test_2 = { 'C': 3, 'D': 4 } # 変更前 print(test_1) print(test_2) test_1.update(test_2) # 変更後 print(test_1)
# Output {'A': 1, 'B': 2} {'C': 3, 'D': 4} {'A': 1, 'B': 2, 'C': 3, 'D': 4}
もし、結合する辞書同士に同じキーが存在した場合、update()関数
の( )内に指定した辞書が優先されます。
test_1 = { 'A': 1, 'B': 2, } test_2 = { 'B': 3, 'D': 4 } # 変更前 print(test_1) print(test_2) test_1.update(test_2) # 変更後 print(test_1)
# Output {'A': 1, 'B': 2} {'B': 3, 'D': 4} {'A': 1, 'B': 3, 'D': 4}
3. 辞書の各メソッド解説
他にも辞書に関するメソッドはあります。
それらを紹介していきます。
3.1. get
キーが辞書内にあれば値を返し、なければデフォルトで指定した値を返します。
デフォルトをしない場合は、None
を返します。
test = { 'A': 1, 'B': 2, 'C': 3, } print(test) # キーが存在する場合 print(test.get('A', 99)) # キーが存在しない場合 print(test.get('D', 99)) # デフォルト値を指定しなかった場合 print(test.get('D'))
# Output {'A': 1, 'B': 2, 'C': 3} 1 99 None
3.2. pop
キーが辞書に存在すれば値を返した後、辞書から取り出した値を削除します。
test = { 'A': 1, 'B': 2, 'C': 3, } print(test) print(test.pop('A')) print(test)
# Output {'A': 1, 'B': 2, 'C': 3} 1 {'B': 2, 'C': 3}
3.3. setdefault
キーが辞書に存在すれば格納されている値を返し、キーが辞書に存在しない場合は値を代入します。
test = { 'A': 1, 'B': 2, 'C': 3, } print(test) # キーが存在する場合 print(test.setdefault('A', 99)) # キーが存在しな場合 print(test.setdefault('D', 99)) print(test)
# Output {'A': 1, 'B': 2, 'C': 3} 1 99 {'A': 1, 'B': 2, 'C': 3, 'D': 99}
3.4. clear
辞書の中のすべての要素を削除することができます。
test = { 'A': 1, 'B': 2, 'C': 3, } # 変更前 print(test) test.clear() # 変更後 print(test)
# Output {'A': 1, 'B': 2, 'C': 3} {}
4. 辞書の応用編
辞書には他にもいろいろな使い方があります。
それらを一部ですが紹介していきます。
4.1. 全てのキーの取得
全てのキーを取得するにはkeys()関数
を使います。
test = { 'A': 1, 'B': 2, 'C': 3, } print(test) print(test.keys())
# Output {'A': 1, 'B': 2, 'C': 3} dict_keys(['A', 'B', 'C'])
4.2. 全ての値の取得
全ての値を取得するにはvalues()関数
を使います。
test = { 'A': 1, 'B': 2, 'C': 3, } print(test) print(test.values())
# Output {'A': 1, 'B': 2, 'C': 3} dict_values([1, 2, 3])
4.3. 全てのキーと値のペアの取得
全てのキーと値のペアを取得するには、items()関数
を使います。
test = { 'A': 1, 'B': 2, 'C': 3, } print(test) print(test.items())
# Output {'A': 1, 'B': 2, 'C': 3} dict_items([('A', 1), ('B', 2), ('C', 3)])
4.4. inを使った値の有無の判定
指定したキーが辞書内に含まれるかどうかを判定します。
存在すればTrueが返り、存在しなければFalseが返されます。
test = { 'A': 1, 'B': 2, 'C': 3, } print(test) # 存在するパターン print('A' in test) # 存在しないパターン print('D' in test)
# Output {'A': 1, 'B': 2, 'C': 3} True False