2016-09-14 74 views
0

试图从2维列表中打印出一些数字。python中的二维列表

我有一个功能需要打印出每个学生的平均成绩。另一个功能应该将所有学生的平均水平打印在一起。

如何访问这些数字并使其按照我想要的方式工作?我尝试将它们附加到列表中,以便我可以得到4个平均值,然后去/ 4,但它只追加最后的平均数。

studentgrades = [ [95, 92, 86],[66, 75, 54],[89, 72, 100],[34, 0, 0] ] 
def average_per_student(studentgrades): 
    child = 0 
    lst_average = [] 
    for cijfers in studentgrades: 
     average = int(sum(cijfers) /3) 
     child += 1 
     result = 'child %d: gemiddelde %d' % (child, average) 
     lst_average.append(result) 
     vg = [] 
     print(average) 
     vg.append(average) 

    print(vg) 
    return lst_average 


def average_of_all_students(studentgrades): 
    pass 

resultaat1 = average_per_student(studentgrades) 
# print(resultaat1) 
resultaat2 = average_of_all_students(studentgrades) 
# print(resultaat2) 

回答

1

你需要移动vg = []for外循环,这样,你是不是每次都重新初始化。然后你将初始化一次,每个学生附加一个元素,最后它将包含4个学生平均值的完整列表。

+0

谢谢,我觉得没有看到这一点愚蠢。我将如何去返回1个打印语句中的多个值?我想删除print(resultaat1)上的评论,并打印出我的函数中返回的所有平均值。 –

+0

我不太清楚我的理解你的问题。你可以通过'return(lst_average,vg)'作为元组返回'lst_average'和'vg'值。然后你需要将呼叫点更新为'(average_strings,average_values)= average_per_student(studentgrades)'或类似的东西。 –

+0

我想要实现的是,而不是在我的函数中放置一个print(),我想要使用返回。但是,当我使用返回时,我得不到与print()一样的值。 –