student={"aman":{"math":90,
"english":92,
"science":99},
"verma":{"math":80,
"english":87,
"science":70}}
我需要找到每个键的值的总和(例如“aman”= 90 + 92 + 99),该怎么做?
以及如何找到得分最高的学生的姓名?
答案 0 :(得分:2)
使用dict理解创建一个包含总结的新词典:
dct_sum = {k: sum(v.values()) for k, v in student.items()}
# {'aman': 281, 'verma': 237}
找到总数最高的学生:
max(dct_sum, key=dct_sum.get)
# aman
答案 1 :(得分:0)
使用列表理解和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))
<强>输出:强>
[281, 237]
{'aman': 281, 'verma': 237}
答案 2 :(得分:0)
使用熊猫:
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())
结果:
aman 281
verma 237
或者如果你想要一个额外行的表:
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