# Python中的defaultdict

# ‵Python中的dict`

字典是Python中的无序集合数据结构,功能类似于map。字典中存储的是键值对,其键必须是不能修改的唯一值,例如tuple可以用来做字典中的键而list不能。

a = dict(b=10, c=100)

在访问字典中的某个键时需要对key进行检查,否则当key在字典中不存在时会报错,如下:

# ---------------------------------------------------------------------------
# KeyError                                  Traceback (most recent call last)
# Input In [22], in <cell line: 2>()
#       1 a = dict(b=10, c=100)
# ----> 2 a['d']

# KeyError: 'd'

这里有两个办法防止其报错,一个是使用get方法,

a.get('d', 1000)
# 1000

当使用get访问字典中key对应的值,若key在字典中不存在,就返回缺省值。

另一种方式是使用defaultdict

# defaultdict

defaultdictcollections中的对象,使用方法为:

from collections import defaultdict

def default_value():
    return 0

a = defaultdict(default_value)
a['d']
# 0

通过函数给出默认值。

函数部分还可以使用lambda表达式:

d = defaultdict(lambda: "Not Present") 
d["a"] = 1
d["b"] = 2
  
print(d["a"]) 
print(d["b"]) 
print(d["c"]) 
# 1
# 2
# Not Present

1.https://docs.python.org/3.6/library/collections.html (opens new window)