为了账号安全,请及时绑定邮箱和手机立即绑定

在字典中迭代列表

在字典中迭代列表

MM们 2022-09-27 16:23:42
我是Python的新手,我希望在字典中的列表中迭代字典(我知道令人困惑)。my_dict = {"John": [{"class": "math", "score": 100, "year": 2014}, {"class": "english", "score": 85, "year": 2015}], "Timmy": [{"class": "math", "score": 87, "year": 2014}, {"class": "english", "score": 91, "year": 2015}], "Sally":[{"class": "math", "score": 95, "year": 2014}]}我需要创建一个关于学生姓名及其综合分数的新字典(Sally只有一个分数)。输出将如下所示:new_dict = {"John": 185, "Timmy": 178, "Sally": 95}任何帮助或指导将不胜感激!
查看完整描述

2 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

使用字典理解:


{k: sum(x['score'] for x in v) for k, v in my_dict.items()}

验证码:


my_dict = {"John": [{"class": "math", "score": 100, "year": 2014}, {"class": "english", "score": 85, "year": 2015}], 

"Timmy": [{"class": "math", "score": 87, "year": 2014}, {"class": "english", "score": 91, "year": 2015}], 

"Sally":[{"class": "math", "score": 95, "year": 2014}]}


new_dict = {k: sum(x['score'] for x in v) for k, v in my_dict.items()}

# {'John': 185, 'Timmy': 178, 'Sally': 95}


查看完整回答
反对 回复 2022-09-27
?
慕后森

TA贡献1802条经验 获得超5个赞

我试图编写一个程序来解决这种情况。


score_dict = {}

for name in my_dict:

    score_dict[name] = 0

    class_items = my_dict[name]

    for class_item in class_items:

        score_dict[name] += class_item['score']


print score_dict


查看完整回答
反对 回复 2022-09-27
  • 2 回答
  • 0 关注
  • 89 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信