我有一本字典,谁的键是学生ID#,而值是另一本字典。嵌套字典具有列表中的键,这些键说明作业的类型,值是作业的等级。
因此,我尝试更改每个作业的成绩列表(以降低最低成绩,取平均分数等),但是我想不出一种方法将其从字典中挑选出来。
这是字典的一部分:
D = {"123-45-6789":{"hw":[98,89,92,75], "quiz":[45,36,42,50,29,27,40,41], "exam":[175,157]}, "534-77-9326":{"hw":[67,89,55,78], "quiz":[78,45,67,23,45,78,88,91], "exam":[187,146]}, ....... etc.
任何帮助将不胜感激。
***并且我忘了提到我计划遍历字典以编辑每个年级列表,因为有很多学生证号。所以我想我真正要问的是: 语法是指每个学生ID#,然后是每个ID#
每个成绩列表的语法
答案 0 :(得分:0)
您可以使用赋值表达式在字典中获取列表:
lst = students_grades_dictionary["123-45-6789"]["hw"]
您可以使用弹出功能从列表中删除成绩:
lst.pop(<grade index>)
由于lst
是对成绩列表的引用,因此您对它所做的任何更改也会更改词典中的成绩列表。
答案 1 :(得分:0)
找到列表的长度后,可以混合使用list.remove
和min()
。
max_size = 4
new_score = 87
hw_list = data[student_id]['hw']
if len(hw_list) >= max_size - 1:
hw_list.remove(min(hw_list))
hw_list.append(new_score)
注意,如果列表已经比指定的最大值len
大2个以上,则此方法将无法处理。