Skip to main content
 首页 » 编程设计

python之类型错误 : first argument must be callable, defaultdict

2025年05月04日25langtianya

错误来自 publishDB = defaultdict(defaultdict({})) 我想创建一个像 {subject1:{student_id:{assignemt1:marks, assignment2:marks,finals 这样的数据库:marks}} , {student_id:{assignemt1:marks, assignment2:marks,finals:marks}}, subject2:{student_id:{assignemt1:marks, assignment2:marks,finals:marks}} , {student_id:{assignemt1:marks , assignment2:marks,finals:marks}}}.我试图将其填充为 DB[math][10001] = a dict,然后读出为 d = DB[math][10001]。因为,我在我的办公室电脑上,我不能尝试不同的模块。

我这样做是否正确?

请您参考如下方法:

这样的嵌套dict结构可以使用递归defaultdict“树”来实现:

def tree():  
    return defaultdict(tree) 
 
publishDB = tree() 

在每个级别,默认字典都根据需要用 tree 实例化,这是一个零参数可调用对象。 然后你可以简单地分配标记:

publishDB[subject][student][assignment] = mark