Skip to main content
 首页 » 编程设计

python之如何在 Python 中创建列表字典的有序字典

2025年05月04日12me-sa

与下面的类

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)