collections defaultdict 和 normal dict的区别
相关阅读:https://stackoverflow.com/questions/5900578/collections-defaultdict-difference-with-normal-dict
例子摘抄自stackoverflow的提问和回答哈
from collections import defaultdict
s = "mississippi"
d = defaultdict(int)
for k in s:
d[k] += 1
d.items()
# output
#dict_items([('m', 1), ('i', 4), ('s', 4), ('p', 2)])
s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)]
d = defaultdict(list)
for k, v in s:
d[k].append(v)
d.items()
#output
#[('blue', [2, 4]), ('red', [1]), ('yellow', [1, 3])]
使用defaultdict:如果字典dict 的key不存在的话,一个新的entry 会被创建而不是抛出keyError的报错。新创建的entry类型是defaultdict()内部的输入决定
比如int 和 list