pikesaku’s blog

個人的なプログラム勉強メモです。記載内容について一切の責任は持ちません。

Pythonのディクショナリ操作

定義方法

>>> a = {'a':1,'b':2}
>>> a
{'b': 2, 'a': 1}
>>> a['c'] = 3
>>> a
{'b': 2, 'a': 1, 'c': 3}
>>> 

キーの存在チェック

>>> a
{'b': 2, 'a': 1, 'c': 3}
>>> 'a' in a
True
>>> 'd' in a
False
>>>

インデックスアクセス時に存在しない場合にデフォルト値を返す

>>> a
{'b': 2, 'a': 1, 'c': 3}
>>> a['d']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'd'
>>> a.get('d')
>>> a.get('d','hoge')
'hoge'
>>> 

getメソッドは引数でデフォルト値を設定できる。引数がない場合は、Noneを返す。

イテレーションアクセス

キーにアクセスする場合

>>> a
{'b': 2, 'a': 1, 'c': 3}
>>> for k in a:
...   print(k)
... 
b
a
c
>>> 

値にアクセスする場合

>>> a
{'b': 2, 'a': 1, 'c': 3}
>>> for v in a.values():
...   print(v)
... 
2
1
3
>>> 

両方にアクセスする場合

>>> a
{'b': 2, 'a': 1, 'c': 3}
>>> for k,v in a.items():
...   print(k,v)
... 
b 2
a 1
c 3
>>>

データの追加と削除

追加

>>> a
{'b': 2, 'a': 1, 'c': 3}
>>> a['d'] = 4
>>> a
{'b': 2, 'a': 1, 'd': 4, 'c': 3}
>>> 

定義時と同じ

削除

>>> a
{'b': 2, 'a': 1, 'd': 4, 'c': 3}
>>> del a['a']
>>> a
{'b': 2, 'd': 4, 'c': 3}
>>> a.pop('b')
2
>>> a
{'d': 4, 'c': 3}
>>> 

delとpopの違いは、popの場合は値を返す点
存在しないキーを指定してアクセスするとKeyErrorが発生する。

popを使うとKeyErrorは発生させないことが可能。

>>> a
{'d': 4, 'c': 3}
>>> del a['a']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'a'
>>> a.pop('a')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'a'
>>> a.pop('a', 'hoge')
'hoge'
>>> a
{'d': 4, 'c': 3}
>>>