代码之家  ›  专栏  ›  技术社区  ›  MrFHHH

Python词典中的平均值

  •  2
  • MrFHHH  · 技术社区  · 8 年前

    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!")
    
    3 回复  |  直到 8 年前
        1
  •  5
  •   Stael    8 年前

    .values() 方法,该方法返回字典中可以使用的值列表,例如:

    sum(d.values()) / float(len(d))
    

    d.values() sum(..) len(d) 这是字典的整数长度(即标记数),显然平均值是标记总数/标记数。

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

        2
  •  3
  •   ikkuh    8 年前

    可以使用 sum

    average = sum(d['Maths Score: '] for d in student_info.values()) / len(student_info)
    

        3
  •  2
  •   Jon Clements    8 年前

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

    from statistics import mean
    avg_score = mean(d.values())