dict の話

スパースなベクトルを

a = {1:1, 2:5, 10:2}

みたいなdictで持ちたい時がある。Cython のコードの中で scipy.sparse を使うと、異様に要素の参照が遅く、dictの方が圧倒的に速いっぽいので。

こんなときに、a[3]とか、keyに入っていない要素を参照した時には0を返して欲しいけれども、この参照の仕方だと、エラーが返ってくる。

実は get(key, default) を適用すると、keyがない場合はdefaultの値を返してくれるようにできる。便利。

a.get(3, 0)