defaultdict对象
defaultdict在字典dict的基础之上添加一个参数default_factory(default_factory可以指定为list,set,int)
-
例子1:将下面的list转换成一个dict,其中key对应的value是一个list
from collections import defaultdict l=[('a',2),('b',3),('a',1),('b',4),('a',3),('a',1),('b',3)] d=defaultdict(list) for key,value in l: d[key].append(value) print(d) # out: defaultdict(<class 'list'>,{'a':[2,1,3,1],'b':[3,4,3]}
-
例子2:例1中value中包含重复元素,如果我们不想要value中的元素重复,可以用defaultdict(set)来解决这个问题。
d = defaultdict(set) for key,value in s: d[key].add(value) print(d) # out: defaultdict(<class 'set'>, {'a': {2,1,3}, 'b': {3,4}})
-
例子3:如果要统计一个字符串中每个字符出现的次数,可以使用defaultdict(int)
sen='hello world' d=defaultdict(int) for key in sen: d[key]+=1 print(d) defaultdict(<class 'int'>, {'o': 2, 'h': 1, 'w': 1, 'l': 3, ' ': 1, 'd': 1, 'e': 1, 'r': 1})