【问题标题】:Python dictionaries - How to average multiple numbers in a key, value pair [duplicate]Python字典-如何平均键,值对中的多个数字[重复]
【发布时间】:2021-01-30 12:33:57
【问题描述】:
student = {'first_name': 'Bob', 'last_name': 'Barker',
               'assignments': [('assignment1', 75), ('assignment2', 100), ('assignment3', 47), ('assignment4', 97)]}
    
    
def average_grade(student):
    grade = sum(student['assignments']) / len(student['assignments'])
    print(grade)
    
average_grade(student)

我正在尝试平均分配的值,但我完全卡住了!

【问题讨论】:

  • 你试过什么?你期望工作是什么?发生了什么?

标签: python dictionary


【解决方案1】:

问题是您正在尝试对作业求和,即元组,而不仅仅是作业的成绩。试试这个:

student = {'id': 1, 'first_name': 'Bob', 'last_name': 'Barker',
           'assignments': [('assignment1', 0), ('assignment2', 2), ('assignment3', 4)]}


def average_grade(student):
    assignment_grades = [assignment[1] for assignment in student['assignments']]
    grade = sum(assignment_grades) / len(student['assignments'])
    print(grade)


average_grade(student)

【讨论】:

  • 如果我想对列表中多个词典的成绩求和怎么办?类似吗?
【解决方案2】:

问题是您尝试对元组求和,而不是对成绩的整数值求和。

一个可能的解决方案:

def average_grade(student):
  sum_of_assignments = sum(assignment[1] for assignment in student['assignments'])
  num_of_assignments = len(student['assignments'])
  grade = sum_of_assignments / num_of_assignments
  print(grade)

average_grade(student)
# 2.0

【讨论】:

  • 如果我想对列表中多个词典的成绩求和怎么办?类似吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-21
  • 1970-01-01
相关资源
最近更新 更多