Python字典批量赋值问题:如何为多个字典的homework键设置值
批量设置多个字典的homework键值
嘿,作为编程新手能想到用批量操作来避免重复代码,这点特别棒!当然可以给这三个字典的homework键批量赋值,我给你分享两种实用的方法:
方法一:用列表循环批量处理
把三个学生字典放进一个列表里,然后遍历列表逐个设置homework的值,这样就不用重复写三次赋值语句啦:
# 先定义你的三个字典 lloyd = {"name":"Lloyd", "homework":[], "quizzes":[], "tests":[]} alice = {"name":"Alice", "homework":[], "quizzes":[], "tests":[]} tyler = {"name":"Tyler", "homework":[], "quizzes":[], "tests":[]} # 把所有学生字典存入一个列表 student_list = [lloyd, alice, tyler] # 定义要设置的homework分数 target_homework = [90.0, 97.0, 75.0, 92.0] # 循环遍历每个学生字典,设置homework值 for student in student_list: # 用.copy()是为了让每个学生的homework是独立的列表,避免后续修改互相影响 student["homework"] = target_homework.copy()
小提示:如果之后不需要单独修改某个学生的homework列表,也可以不用
.copy(),直接赋值student["homework"] = target_homework。但用.copy()更稳妥,能防止意外的联动修改。
方法二:封装成函数(适合重复使用)
如果你之后还要多次给不同学生批量设置作业分数,可以把逻辑封装成一个小函数,方便复用:
def batch_set_homework(students, homework_scores): for student in students: student["homework"] = homework_scores.copy() # 调用函数完成批量设置 batch_set_homework([lloyd, alice, tyler], [90.0, 97.0, 75.0, 92.0])
这样以后再需要类似操作,只需要调用这个函数就行,代码更整洁易维护~
内容的提问来源于stack exchange,提问作者Bijay Gurung
相关产品推荐
相关产品推荐

