如何从全是字典元素的列表中提取字典的值呢

一个人的成绩在字典中,所有人的成绩放入列表中,然后求各科的成绩的平均分和一个人的平均分


# coding: utf-8 
# Author:Qinfan
# Time  : 2021/12/3 17:17

# 一个人的成绩在字典中,所有人的成绩放入列表中,然后求各科的成绩的平均分和一个人的平均分

user_list = [
    {'name': "张三", 'chinese': 85, 'math': 92},
    {'name': "李四", 'chinese': 45, 'math': 76},
    {'name': "王五", 'chinese': 52, 'math': 66},
    {'name': "周六", 'chinese': 36, 'math': 36},
    {'name': "孙七", 'chinese': 89, 'math': 46},
]

# 求数学平均分
math_sum = 0
for user in user_list:
    math_sum += user['math']

math_avg = math_sum / len(user_list)
print(math_avg)

# 求某个学生的平均分
name = '张三'
user_info = dict()
for user in user_list:
    if user['name'] == name:
        user_info = user
        break

avg = (user_info['chinese'] + user_info['math']) / 2
print(avg)

码字不易,望采纳和关注哦,有问题可以私信我!


points=[
    {"小明":{"数学":88,"语文":59,"历史":95}},
    {"小刚":{"数学":78,"语文":69,"历史":91}},
    {"小李":{"数学":68,"语文":79,"历史":92}},
    {"小王":{"数学":58,"语文":89,"历史":93}},
]
av={}
for i in points:
    for k,v in i.items():
        #此时k为学生名字,v是学生成绩的字典,用v.values()字典方法返回成绩集合
        print(k,"平均成绩",sum(v.values())/len(v.values()))
        for x,y in v.items():
            av[x]=av.get(x,0)+y
            
for k, v in av.items():
    print(k,"平均成绩",v/len(points))