collections defaultdict 和 normal dict的区别

发布时间 2023-08-30 18:18:03作者: 大蟒蛇进动吐痰

相关阅读: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