首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python中字典中的平均值

Python中字典中的平均值
EN

Stack Overflow用户
提问于 2017-06-30 17:38:24
回答 3查看 6.3K关注 0票数 2

我正在试着找出这门课的平均数学分数,但我不确定如何在字典中这样做。如何使用一种简单的方法将每个分数相加,然后除以学生人数(num_students)?

代码语言:javascript
运行
复制
login="teacher"
password="school"

usrnm=input("Please enter your username: ")
pw=input("Please enter your password: ")
if (usrnm==login) and (pw==password):
   print("==Welcome to the Mathematics Score Entry Program==")
   num_students = int(input("Please enter number of students:"))
   print ("you entered ",num_students," students")
   student_info = {}
   student_data = ['Maths Score: ']
   for i in range(0,num_students):
      student_name = input("Name :")
      student_info[student_name] = {}
      for entry in student_data:
        student_info[student_name][entry] = int(input(entry)) 
   print (student_info)
else:
  print("No way, Jose!")
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-06-30 17:46:57

python字典有一个.values()方法,它返回字典中您可以使用的值的列表,例如:

代码语言:javascript
运行
复制
sum(d.values()) / float(len(d))

d.values()给出学生的分数列表,sum(..)给出所有分数的总和,除以len(d),这是字典的整数长度(即分数),显然平均值是分数总数/分数。

您需要浮点数,因为python 2将返回一个整数,否则(python 3会在适当的时候提供浮点数)

票数 4
EN

Stack Overflow用户

发布于 2017-06-30 17:47:48

可以使用sum函数计算平均值,如下所示:

代码语言:javascript
运行
复制
average = sum(d['Maths Score: '] for d in student_info.values()) / len(student_info)

请注意,目前您的代码只能有具有唯一名称的学生。两个同名学生将互相覆盖。

票数 3
EN

Stack Overflow用户

发布于 2017-06-30 17:58:46

如果您使用的是Python 3.4+,则可以使用statistics.mean

代码语言:javascript
运行
复制
from statistics import mean
avg_score = mean(d.values())
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44843346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档