我创建了一个默认字典,如下所示:
from collections import defaultdict
dd = defaultdict(lambda : "Key not found")
dd = {'a':1,'b':2}
print(dd)
print(dd['a']) # Prints 1
print(dd['c']) # Throws KeyError
但是,以下代码段有效:
from collections import defaultdict
(lambda : "Key not found")
dd['a']=1
dd['b']=2
print(dd)
print(dd['a']) # Prints 1
print(dd['c']) # Prints "Key not found"
谁能解释一下为什么第一个代码段引发错误,而第二个代码却按预期运行呢?
答案 0 :(得分:2)
您已经用dd = defaultdict(lambda : "Key not found")
覆盖了dd = {'a':1,'b':2}
,因此defaultdict()
变成了dict()
。
答案 1 :(得分:1)
请考虑删除第一个代码段中的第3行。 这已经覆盖了您的类型为defaultdict的dd。
答案 2 :(得分:0)