defaultdict()继承自dict系统内置类型
defaultdict()定义以及作用:
返回一个和dictionay类似对象,和dict不同:
1. 可以制定key对应value类型
2. 不必担心key没有默认值,defaultdict有默认value
示范代码如下:
from collections import defaultdict list0 = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)] dict0 = defaultdict(list) for k, v in list0: dict0[k].append(v) print(list(dict0.items())) dict1 = {} for k, v in list0: dict1.setdefault(k, []).append(v) print(list(dict1.items())) dict2 = {} for k, v in list0: dict2[k].append(v) print(dict2.items())
输出结果如下:
[('blue', [2, 4]), ('red', [1]), ('yellow', [1, 3])] [('blue', [2, 4]), ('red', [1]), ('yellow', [1, 3])] Traceback (most recent call last): File "collections_test.py", line 16, in <module> dict2[k].append(v) KeyError: 'yellow'
dict0 = defaultdict(list)创建一个defaultdict类型,value的类型是list。该函数主要用于生成字典时候限制value类型;
而setdefault必须手动制定value类型。