我正在努力实现这样的目标
classroom = {"john" : {"grade_math": placeholder_grade_math,
"grade_physics": placeholder_grade_physics}
然后
grades = {"placeholder_grade_math": str(10),
"placeholder_grade_physics": str(8))
所以现在我想将grades
的键匹配到classroom
的占位符并进行更新。有什么Python方法可以做到这一点吗?
我遇到过这个question,但是我试图在没有正则表达式的情况下实现相同的目的。
编辑:
我应该指出,字典classroom
的作用类似于模板。它按原样传递给类。占位符变量是在执行过程中产生的,我想在不使用键的情况下对其进行更新。
当然预期的输出是
classroom = {"john" : {"grade_math": "10",
"grade_physics": "8"}
但是以某种方式从grades
“解包”到classroom
另一个编辑:
现在说原来的classroom
更改为
classroom = {"john" : {"grade_math": placeholder_grade_math,
"grade_physics": placeholder_grade_physics,
"grade_geometry": placeholder_grade_geometry}
但grades
保持不变。我之所以要“解压”,是因为我只想在1个地方(classroom
)修改键,并且占位符被填充,而我也不必修复其他部分({ {1}}。
答案 0 :(得分:0)
这是您要寻找的吗?
classroom = {"john" : {"grade_math": grades['placeholder_grade_math'],"grade_physics": grades['placeholder_grade_physics']}}
答案 1 :(得分:0)
您只需要一个功能:
def make_classroom(grades):
return {
"john": {
"grade_math": grades['math'],
"grade_physics": grades['physics']
}
}
classroom = make_classroom({'math': "10", 'physics': "8"})
答案 2 :(得分:0)
我认为类似的方法也可以:
def getStudentGrades(**kwargs):
classroom = {"john" :
{
"grade_math": kwargs["placeholder_grade_math"],
"grade_physics": kwargs["placeholder_grade_physics"],
"grade_geometry": kwargs["placeholder_grade_geometry"]
}
}
return classroom
if __name__ == "__main__":
kwargs = {
"placeholder_grade_math": str(10),
"placeholder_grade_physics": str(8),
"placeholder_grade_geometry": None
}
### you can change geometry grades from None to
### whichever score you would like, using `None` for reference.
getJohnsGrade = getStudentGrades(**kwargs)
print(getJohnsGrade)