Python学习之collections module-defaultdict()

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

原文地址:https://www.cnblogs.com/wenwangt/p/4467068.html