python – 尝试在嵌套字典中查找唯一值的总和. (见例子!)
发布时间:2020-12-16 23:33:49 所属栏目:Python 来源:网络整理
导读:假设我有这个变量list_1,它是一个字典列表. 每个字典都有一个名为“group”的嵌套字典,其中包含一些信息,包括“name”. 我要做的是总结每个唯一组名的得分. 所以我正在寻找类似于的输出: (陶瓷)总得分=(18) 总成绩(数学)=(20) (历史)总得分=(5) 我在括号中
假设我有这个变量list_1,它是一个字典列表.
每个字典都有一个名为“group”的嵌套字典,其中包含一些信息,包括“name”. 我要做的是总结每个唯一组名的得分. 所以我正在寻找类似于的输出: (陶瓷)总得分=(18) 我在括号中有上述信息,因为无论列表中的项目数量或表示的唯一组数量如何,我希望此代码能够正常工作. list_1变量: list_1 = [ {"title" : "Painting","score" : 8,"group" : {"name" : "Ceramics","id" : 391} },{"title" : "Exam 1","score" : 10,"group" : {"name" : "Math","id" : 554} },{"title" : "Clay Model",{"title" : "Homework 3",{"title" : "Report 1","score" : 5,"group" : {"name" : "History","id" : 209} },] 我的第一个想法是创建一个新的列表变量并附加每个唯一的组名.这是代码.但是,这有助于最终找到每一个的得分总和吗? group_names_list = [] for item in list_1: group_name = item["group"]["name"] if group_name not in group_names_list: group_names_list.append(group_name) 这给了我group_names_list的值为: ['Ceramics','Math','History'] 任何帮助或建议表示赞赏!谢谢. 解决方法
您可以使用dict跟踪每个名称的分数:
score_dict = dict() for d in list_1: name = d['group']['name'] if name in score_dict: score_dict[name] += d['score'] else: score_dict[name] = d['score'] print(score_dict) 结果:{‘陶瓷’:18,’数学’:20,’历史’:5} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |