已知一字典my_dict={“张蓉”:{“大学计算机基础”:90,”高等数学”:80,”大学英语”:80},“李斌”: {“大学计算机基础”:87,”高等数学”:82,”大学英语”:85},”李晓伟”: {“大学计算机基础”:94,”高等数学”:86,”大学英语”:90}},新编一程序,通过自定义函数的方式,实现自动统计字典中各同学所有课程的总成绩和平均成绩。
def auto_count(my_dict):
for name in my_dict.keys():
csum = 0
for course in my_dict[name].keys():
csum += my_dict[name][course]
my_dict[name]["总成绩"] = csum
my_dict[name]["平均成绩"] = csum/len(my_dict[name].keys())
my_dict={"张蓉":{"大学计算机基础":90,"高等数学":80,"大学英语":80},"李斌": {"大学计算机基础":87,"高等数学":82,"大学英语":85},"李晓伟": {"大学计算机基础":94,"高等数学":86,"大学英语":90}}
auto_count(my_dict)
for name in my_dict.keys():
print("%s总成绩:%d,平均成绩:%d"%(name,my_dict[name]["总成绩"],my_dict[name]["平均成绩"]))
这个就是解析,然后计算即可
def calc(d):
for k, v in d.items():
t = list(zip(*v.items()))
print(f"{k}:总成绩:{sum(t[1])} 平均成绩:{sum(t[1])/len(t[1]):.3f}")
my_dict={'张蓉':{'大学计算机基础':90,'高等数学':80,'大学英语':80},
'李斌': {'大学计算机基础':87,'高等数学':82,'大学英语':85},
'李晓伟': {'大学计算机基础':94,'高等数学':86,'大学英语':90}
}
calc(my_dict)
"""
--result
张蓉:总成绩:250 平均成绩:83.333
李斌:总成绩:254 平均成绩:84.667
李晓伟:总成绩:270 平均成绩:90.000
"""