Skip to main content
 首页 » 编程设计

python之如何修复 TypeError : unsupported operand type(s) for +: 'int' and 'list'

2025年05月04日24webabcd

我的函数应该将包含数字列表的列表作为输入。每个数字列表都应该代表特定学生在类(class)中获得的成绩。例如,这是一个四名学生类(class)的输入列表:

[[95, 92, 86, 87], [66, 54], [89, 72, 100], [33, 0, 0]]

我的函数应该每行打印一个,每个学生的平均成绩。我不能假设每个学生的成绩都相同。

这是我目前所拥有的:

def avg(grades): 
    for average in grades: 
        return sum(grades) / len(grades) 

但是当我通过输入 avg([[95, 92, 86, 87], [66, 54], [89, 72, 100], [33, 0, 0]]) 对其进行测试时 它显示此错误:

Traceback (most recent call last): 
  File "<pyshell#4>", line 1, in <module> 
    avg([[95, 92, 86, 87], [66, 54], [89, 72, 100], [33, 0, 0]]) 
  File "<pyshell#3>", line 3, in avg 
    return sum(grades) / len(grades) 
TypeError: unsupported operand type(s) for +: 'int' and 'list' 

解决方案应该是:

90.0 
60.0 
87.0 
11.0 

我该如何解决?

请您参考如下方法:

一个简单的解决方案:

students_results = [] 
def avg3(students): 
    for student in students: 
        students_results.append(sum(student) / len(student)) 
    return students_results 
 
arr = [[95, 92, 86, 87], [66, 54], [89, 72, 100], [33, 0, 0]] 
print(avg3(arr)) 

结果:[90.0, 60.0, 87.0, 11.0]