dict.get
昨日のpythonネタで二つとも
try: foo[key] += val except: foo[key] = initial
みたいなダッサいことしてました。
以下のように書けば
foo[key] = foo.get(key, initial) + val
良いんですね。。。こういうとこダメだなあ。しっかりリファレンス読もう。
と、思ったけど これだと 正しくは
foo[key] = foo.get(key, initial-val) + val
となるのか。何か汚い気がする。
今回の例では問題なさそう。
前:
try: ret[name]+= pow except: ret[name] = pow
後:
ret[name] = ret.get(name, 0) + pow
前:
try: tags[keyword] += 1 except: tags[keyword] = 1
後:
tags[keyword] = tags.get(keyword,0) + 1
どっちが見やすいんだろ。