Skip to main content
 首页 » 编程设计

Python `defaultdict` : Use default when setting, 但不是在获取时

2025年05月04日9davidwang456

有什么方法可以让 collections.defaultdict 在我设置它时返回一个默认构造的对象...

foo = defaultdict(list) 
foo[3].append('dsafdasf') 

...但是当我尝试访问它时却没有?

try: 
   for word in foo[None]: 
       print(word) 
except KeyError: 
    pass 

请您参考如下方法:

我认为您正在寻找的是这样的东西:

>>> foo = {} 
>>> foo.setdefault(3, []).append('dsafdasf') # Appends to default value 
>>> foo[None] # Raises a KeyError exception 

也就是说,不用collections.defaultdict,您可以使用常规字典,并在需要时使用setdefault 方法,在需要时分配默认值和项目访问权限缺少 key 时引发的异常。