与下面的类
from collections import defaultdict, OrderedDict
class NestedOrderedDict(OrderedDict):
def __missing__(self,k):
val = self[k] = NestedOrderedDict()
return self[k]
我尝试制作列表字典的有序字典
orddodol = NestedOrderedDict()
orddodol["foo"]["a"].append(1)
orddodol["foo"]["b"].append(1)
orddodol["foo"]["b"].append(12)
orddodol["bar"]["a"].append(2)
orddodol["bar"]["a"].append(3)
但它没有给予
AttributeError: 'NestedOrderedDict' object has no attribute 'append'
正确的做法是什么?
请您参考如下方法:
您必须将二级字典值初始化为列表:
from collections import defaultdict, OrderedDict
class NestedOrderedDict(OrderedDict):
def __missing__(self,k):
val = self[k] = NestedOrderedDict()
return self[k]
orddodol = NestedOrderedDict()
orddodol["foo"]["a"] = [] # these
orddodol["foo"]["b"] = [] # three
orddodol["bar"]["a"] = [] # lines
orddodol["foo"]["a"].append(1)
orddodol["foo"]["b"].append(1)
orddodol["foo"]["b"].append(12)
orddodol["bar"]["a"].append(2)
orddodol["bar"]["a"].append(3)
