如果我有d=dict(zip(range(1,10),range(50,61)))
我怎样才能建立一个collections.defaultdict
出来的dict
?
defaultdict
似乎采用的唯一参数是工厂函数,我是否必须先初始化然后再通过原始函数d
并更新defaultdict
?
Answers:
阅读文档:
第一个参数提供default_factory属性的初始值;它默认为无。其余所有参数都与传递给dict构造函数一样,包括关键字参数。
from collections import defaultdict
d=defaultdict(int, zip(range(1,10),range(50,61)))
或给出字典d
:
from collections import defaultdict
d=dict(zip(range(1,10),range(50,61)))
my_default_dict = defaultdict(int,d)
None
并不意味着它将为未知密钥生成None,它将根本不使用任何密钥。您需要做defaultdict(lambda: None, {....})
您可以通过将dict作为第二个参数传递来从dict构造一个defaultdict。
from collections import defaultdict
d1 = {'foo': 17}
d2 = defaultdict(int, d1)
print(d2['foo']) ## should print 17
print(d2['bar']) ## should print 1 (default int val )
default_dict = defaultdict(None,{"a":1,"b":{"c":3}})
例如,default_dict["e"]
引发