猿问

在字典中迭代列表

我是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}

任何帮助或指导将不胜感激!


MM们
浏览 91回答 2
2回答

鸿蒙传说

使用字典理解:{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}

慕后森

我试图编写一个程序来解决这种情况。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
随时随地看视频慕课网APP

相关分类

Python
我要回答