Python说文解字_defaultdict
1. 这个构造函数需要一个函数作为参数,每当访问一个字典中不存在的键时,将会不带参数的调用这个函数,并将结果设定为默认值。
2. 众所周期,如果访问字典中不存在的键时,会引发KeyError异常。
其实这个方法主要是用来统计计数的
# 语法格式: # collections.defaultdict([default_factory[, …]]) from collections import defaultdict s=[('yellow',1),('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)] d=defaultdict(list) print(d) for k, v in s: print(k,v) d[k].append(v) a=sorted(d.items()) print(a) # defaultdict(<class 'list'>, {}) # yellow 1 # blue 2 # yellow 3 # blue 4 # red 1 # [('blue', [2, 4]), ('red', [1]), ('yellow', [1, 3])] # 当字典中没有的键第一次出现时,default_factory自动为其返回一个空列表,list.append()会将值添加进新列表;再次遇到相同的键时,list.append()将其它值再添加进该列表。 # # 这种方法比使用dict.setdefault()更为便捷,dict.setdefault()也可以实现相同的功能。 from collections import defaultdict s = 'mississippi' d = defaultdict(int) for k in s: d[k] += 1 print('\n',d) a=sorted(d.items()) print('\n',a) # defaultdict( class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2}) # [('i', 4), ('m', 1), ('p', 2), ('s', 4)]
本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。