加入收藏 | 设为首页 | 会员中心 | 我要投稿 鄂州站长网 (https://www.0711zz.com/)- 数据分析、网络、云渲染、应用安全、大数据!
当前位置: 首页 > 编程开发 > Python > 正文

python – 尝试在嵌套字典中查找唯一值的总和. (见例子!)

发布时间:2020-11-14 08:51:12 所属栏目:Python 来源:互联网
导读:假设我有这个变量list_1,它是一个字典列表. 每个字典都有一个名为“group”的嵌套字典,其中包含一些信息,包括“name”. 我要做的是总结每个唯一组名的得分. 所以我正在寻找类似于的输出: (陶瓷)总得分=(18) 总成绩(数学)=(20) (历史)总得分=(5) 我在括号中有

假设我有这个变量list_1,它是一个字典列表.
每个字典都有一个名为“group”的嵌套字典,其中包含一些信息,包括“name”.

我要做的是总结每个唯一组名的得分.

所以我正在寻找类似于的输出:

(陶瓷)总得分=(18)
总成绩(数学)=(20)
(历史)总得分=(5)

我在括号中有上述信息,因为无论列表中的项目数量或表示的唯一组数量如何,我希望此代码能够正常工作.

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}

(编辑:鄂州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读