Sunday, May 01, 2011

pythonのdictionaryのsetdefault, pop,getなど

自分用のメモ。

dictionaryでその要素がなければ何とかで、ある場合は何とかという処理をif文で書くことがあるけれど、if "a" in dのようなことを書かずに済む方法。

>>> d = {}
>>> d.setdefault("a", 1)
1
>>> d
{'a': 1}

まだ要素がない場合、1が登録される。
既にある場合は指定とちがって既にある値が返ってくるので分かるという寸法。

>>> d.setdefault("a", 2)
1
>>> d
{'a': 1}
>>>

popにも似た機能がある。

>>> d.pop("c", 1)
1

何もないときの振る舞いがこれ。

返り値を指定しない場合は怒られてしまう。

>>> d.pop("c")
Traceback (most recent call last):
File "", line 1, in
KeyError: 'c'


getにも似たことが言える。

>>> d.get("c")
>>> d.get("c", 1)
1

No comments: