错误来自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实例化defaultdict,而是可调用的零参数。
然后,您可以简单地分配标记:

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

关于python - TypeError:第一个参数必须是可调用的,defaultdict,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40712753/

10-12 18:04