本記事ではPythonでよく使われる辞書を初期化する時に気を付けるべきことをご紹介していきます。
ソースコード
gist9fe1bbcc0c836ad212d98fbb1375ce8c
サンプル1:通常の初期化
Pythonで辞書を初期化する時の基本は、collections.defaultdict(int)となります。
基本的には辞書型を初期化する時は、このような形になると思います。
サンプル1-2でエラーを吐く理由
同じような形ですが、サンプル1-2はエラーが出るようになっています。
1-1と1-2の違いはcollections.defaultdict(int)があるかないかだけですが、かなり差があります。
これはdict["sample_key"] += 5を実行する時、dict["sample_key"]の値を参照します。
ですが初期化していないと参照先の"sample_key"が、そもそも定義されていないという判定になり、エラーがでていると思われます。
そのためcollections.defaultdict(int)を使えば、Keyの存在確認が不要となるとも言えます。
サンプル2:集合
collections.defaultdict(set)
とした場合、集合として初期化されます。
そのため、その下にある{'a': {1, 4}, 'b': {2}, 'c': {3}, 'd': {4}}となっており、{'a': {1,1, 4}, 'b': {2,2}, 'c': {3,3}, 'd': {4,4}}とはなりません。
辞書型の値で同じ値をまとめたい時に使える初期化方法となります。
そして集合として初期化されていないと、後ほど記載しているcollections.defaultdict(int)ではエラーを吐くためご注意ください。
サンプル3:指定の値に初期化
初期化=全てを0にするというわけではなく、任意の値に初期化したいときもあるでしょう。
そのような時はcollections.defaultdict(関数)で実現できます。
collections.defaultdict(値)はエラーを吐くため、必ず初期化用の関数を定義してください。
参考記事
本記事の内容は以上となります。
Pythonでコーディングしているとよく使われる辞書ですが、よく使うからこそ基本的な仕様や初期化の方法を知っておいた方がいいでしょう。
本記事は以上です。お疲れさまでした。