我根本不知道该怎么做作业,这让我感到压力:
实现函数avg(),将包含数字列表的列表作为输入。每个数字列表代表特定学生在课程中获得的成绩。例如,这是一个四个学生的班级的输入列表:
[[95, 92, 86, 87], [66, 54], [89, 72, 100], [33, 0, 0]]
平均功能应每行打印每个学生的平均成绩。您可能会假设每个成绩列表都是非空的,但您可能不会假设每个学生的成绩都相同。
avg ([[95, 92, 86, 87], [66, 54], [89, 72, 100], [33, 0, 0]])
90.0
60.0
87.0
11.0
我完全迷路了,我知道我离寻找答案还差得远。这是我到目前为止所做的
def avg(grades):
return avg(grades)
grades =[INSERT LIST OF RANDOM NUMBER]
avg(grades)
是的,我知道这还不算近,而且我的大脑只有豌豆大小。我不知道。谁能帮助我并以白痴可以理解的方式进行解释?这只是第一个问题。它应该是最简单的,但我做不到。
功课要在几个小时内完成,所以我将不胜感激。
答案 0 :(得分:5)
好吧,您知道您需要依次处理每个学生,对吗?
def avg(list_of_students):
for student in list_of_students:
...
您可以查看该学生在length = len(students)
中获得的分数。
您可以用total = sum(students)
将该学生的成绩加起来。
嘿,这看起来很像您需要用来计算平均值的东西,不是吗?然后您应该print(
的{{1}}值average
,对吧?
我认为这些正是您所缺少的难题,不是吗?
答案 1 :(得分:0)
[avg(lst) for lst in myList]
,其中myList = [[95, 92, 86, 87], [66, 54], [89, 72, 100], [33, 0, 0]]
将满足您的需求。
答案 2 :(得分:0)
您可以使用列表方法轻松解决此问题。 “ sum”是list(array)中的一种方法,它返回列表中所有元素的总和。“ len”是list中的另一种方法,它返回列表中所有元素的长度。代码如下所示
x=[[95, 92, 86, 87], [66, 54], [89, 72, 100], [33, 0, 0]]
for i in x:
print(sum(i)/len(i))
或者您可以尝试如下所示的列表理解
x=[[95, 92, 86, 87], [66, 54], [89, 72, 100], [33, 0, 0]]
print("".join(["{}\n".format(sum(i)/len(i)) for i in x]))