嵌套字典中的值总和

2024-09-30 10:37:46 发布

您现在位置:Python中文网/ 问答频道 /正文

student={"aman":{"math":90,
             "english":92,
             "science":99},
     "verma":{"math":80,
              "english":87,
              "science":70}}

我需要找出每个键的值之和(例如对于“aman”=90+92+99),如何做到这一点?在

以及如何找到得分最高的学生的名字?在


Tags: englishmath名字student学生scienceamanverma
3条回答

使用列表理解和dict()。在

演示:

student={"aman":{"math":90,
             "english":92,
             "science":99},
     "verma":{"math":80,
              "english":87,
              "science":70}}

print([sum(student[i].values()) for i in student])
print(dict((i, sum(student[i].values())) for i in student))

输出:

^{pr2}$

使用dict comprehension创建包含摘要的新词典:

dct_sum = {k: sum(v.values()) for k, v in student.items()}

# {'aman': 281, 'verma': 237}

要找到总分最高的学生:

^{pr2}$

通过使用熊猫:

import pandas as pd

student={"aman":{"math":90,
                 "english":92,
                 "science":99},
         "verma":{"math":80,
                  "english":87,
                  "science":70}}

df = pd.DataFrame.from_records(student)
print (df.sum())

结果:

^{pr2}$

或者,如果您想要一个具有额外行的表:

import pandas as pd

student={"aman":{"math":90,
             "english":92,
             "science":99},
     "verma":{"math":80,
              "english":87,
              "science":70}}

df = pd.DataFrame.from_records(student)
df.loc['Total']= df.sum()
print (df)

结果:

         aman  verma
english    92     87
math       90     80
science    99     70
Total     281    237

相关问题 更多 >

    热门问题