2016-09-14 111 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()一樣的值。 –