ブックマーク / peta.okechan.net (1)

  • 1行で辞書の値をインクリメントする – 日曜研究室

    Pythonの組み込みdictでは存在しないキーで値を取り出そうとするとKeyErrorが発生するので、例えばキーで指定した値をインクリメントする処理なんかは、以下のようなお決まりのパターンで書くことが多いです。 d = {} if k in d: d[k] += 1 else: d[k] = 1 でも、1行で書きたければ以下のように書けます。 d = {} d[k] = d.get(k, 0) + 1 defaultdict(v2.5から標準モジュールになってる)を使うと次のようにも書けます。 (ちなみにgetを使う方法よりdefaultdictを使うほうが速いそうです) from collections import defaultdict d = defaultdict(int) d[k] += 1 defaultdictに渡す引数はデフォルト値を返すcallable objectで

    nextmedia
    nextmedia 2016/11/17
  • 1