我是从这样的角度提出这个问题的,即我的印象是请求宽恕而不是许可更像是 Pythonic。
所以,我有一些类似的代码:
d = dict()
try:
d[est['state']].append(est)
except Exception:
d[est['state']] = []
d[est['state']].append(est)
在上面的代码中,我以重复自己为代价请求宽恕而不是许可,这很蹩脚!所以,别无选择,我宁愿:
d = dict()
if est['state'] in d:
d[est['state']].append(est)
else:
d[est['state']] = [est]
这两种方法都有些粗糙。有什么更好的方法来做到这一点?到目前为止我发现的最好的是:
from collections import defaultdict
d = defaultdict(list)
d[est['state']].append(est)