实现函数avg(),将包含数字列表的列表作为输入

时间:2019-07-27 01:40:01

标签: python python-3.x

我根本不知道该怎么做作业,这让我感到压力:

实现函数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)

是的,我知道这还不算近,而且我的大脑只有豌豆大小。我不知道。谁能帮助我并以白痴可以理解的方式进行解释?这只是第一个问题。它应该是最简单的,但我做不到。

功课要在几个小时内完成,所以我将不胜感激。

3 个答案:

答案 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]))