我正在研究数据集,同样,正在处理的大量数据存储在字典中。随着数据的处理,许多密钥都会更新。
为了避免检查每个级别是否存在键,我选择以静态方式创建结构,我用默认值加载键的值。
示例:
Student : {
"Name" : "",
"Exam" : {
"Math" : {"Marks_Obtained" : 0, "Total_Question" : 100, .... some more keys }
}
}
现在当我遇到另一个考试统计说“英语”以避免检查键是否存在时,我预先配置了默认值的结构。所以现在我的结构会看起来像这样。
Student : {
"Name" : "",
"Exam" : {
"Math" : {"Marks_Obtained" : 0, "Total_Question" : 100, .... some more keys },
"Eng" : {"Marks_Obtained" : 0, "Total_Question" : 100, .... some more keys },
"Hist" : {"Marks_Obtained" : 0, "Total_Question" : 100, .... some more keys },
"Bio" : {"Marks_Obtained" : 0, "Total_Question" : 100, .... some more keys }
}
}
现在有些学生可能不会选择参加考试。我想删除整个结构。假设学生没有选择我想要删除的历史记录(del [“Exam”] [“Hist”])。
我不想动态生成结构,因为对于用户提供的检查,值会经常更新,并且检查每次迭代的结构的有效性将意味着额外的O(1)过程。
我希望做的是有效删除未使用的密钥。 我不想使用for循环循环,因为这将是一种低效的方式。
如果有任何疑问,请随时发表评论。
让我知道你的想法!