辞書を作成する – 【Python】

辞書を作成する – 【Python】

Pythonで辞書を作成します。

{}

{}を使用して辞書を作成します。

d1 = {'key1':1,'key2':2,'key3':3}
print(type(d1)) # <class 'dict'>

キーを指定して、辞書の要素にアクセスします。[]でキー指定する方法とgetメソッドを使用する方法があります。

d1 = {'key1':1,'key2':2,'key3':3}

print(d1['key1']) # 1
print(d1.get('key2')) # 2

存在しないキーを指定するとエラーが発生します。

d1 = {'key1':1,'key2':2,'key3':3}

print(d1['key4']) # KeyErrorが発生する

getメソッドを使用する場合はKeyErrorは発生せずにNoneが返ってきます。

第二引数を指定すると、Noneを返さずに第二引数で指定した値が返ってきます。

d1 = {'key1':1,'key2':2,'key3':3}

print(d1.get('key4')) # None
print(d1.get('key4', 'default value')) # default value

dict()

dict()を使用して辞書を作成します。

d1 = dict(key1=1,key2=2,key3=3)
print(type(d1)) # <class 'dict'>
print(d1.get('key2')) # 2
print(d1.get('key4', 'default value')) # default value

dict()を使用して辞書を作成する場合、重複したキーが存在すると文法エラーとなります。

d1 = dict(key1=1,key2=2,key3=3,key3=3) # SyntaxError: keyword argument repeated: key3

print(d1)

キーのリストと値のリストから辞書を作成

キーのリストと値のリストから辞書を作成します。

zip()を使用します。

keys = ['key1','key2','key3']
values = [1,2,3]

d1 = dict(zip(keys,values))
print(type(d1)) # <class 'dict'>
print(d1) # {'key1': 1, 'key2': 2, 'key3': 3}

setdefaultメソッドでキー追加

setdefaultメソッドでキー追加します。

d1 = {'key1':1,'key2':2,'key3':3}
print(d1) # {'key1': 1, 'key2': 2, 'key3': 3}

d1.setdefault('key4',4)
print(d1) # {'key1': 1, 'key2': 2, 'key3': 3, 'key4': 4}

updateメソッドでキー更新

updateメソッドでキー更新します。

updateメソッドの引数は、{キー:値}というように辞書型で渡します。

d1 = {'key1':1,'key2':2,'key3':3}
print(d1) # {'key1': 1, 'key2': 2, 'key3': 3}

d1.update({'key3':4})
print(d1) # {'key1': 1, 'key2': 2, 'key3': 4}

辞書型で渡すので複数のキーを指定して値を変更することも可能です。

d1 = {'key1':1,'key2':2,'key3':3}
print(d1) # {'key1': 1, 'key2': 2, 'key3': 3}

d1.update({'key2':10,'key3':4})
print(d1) # {'key1': 1, 'key2': 10, 'key3': 4}

updateメソッドの引数で存在しないキーを指定した場合は追加されます。アップサートのようなイメージです。

popメソッドでキー削除

popメソッドでキー削除します。存在しないキーを指定すると、KeyErrorが発生します。

d1 = {'key1':1,'key2':2,'key3':3}
print(d1) # {'key1': 1, 'key2': 2, 'key3': 3}

d1.pop('key3')
print(d1) # {'key1': 1, 'key2': 2}

popメソッドの第二引数を指定すると、存在しないキーを指定した場合にエラー発生を回避することが出来ます。

d1 = {'key1':1,'key2':2,'key3':3}
print(d1) # {'key1': 1, 'key2': 2, 'key3': 3}

d1.pop('key4','None')
print(d1) # {'key1': 1, 'key2': 2, 'key3': 3}

delを使用してキー削除

delを使用してキーを削除することもできます。存在しないキーを指定すると、KeyErrorが発生します。

d1 = {'key1':1,'key2':2,'key3':3}
print(d1) # {'key1': 1, 'key2': 2, 'key3': 3}

del d1['key3']
print(d1) # {'key1': 1, 'key2': 2}
タイトルとURLをコピーしました