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类型。