2015-10-20 56 views
-1

我的詞典正在從一個.CSV文件讀入python,然而我需要平均在這個詞典中的分數。在python中平均一個詞典

Classopen = open("Student" + "class" + str(classes) + ".csv","rb") 
Classfile = csv.reader(Classopen) 
Classdict = {} 

for people in Classfile: 
    students = people[0] 
    studentvalue = str(people[1]) 
    if students in Classdict: 
     Classdict[students].append(people) 
    else : 
     Classdict[students] = [studentvalue] 

感謝

+1

請將您的代碼發佈爲文本。 –

+0

這段代碼中的「人」是什麼?它看起來像一個csv的單行,但是應該添加到'Classdict [學生]'後面嗎?不應該讓'學生'成爲分數值嗎? 'people'也應該包含他們的名字。 –

+0

如果您可以發佈一行或兩行輸入文件,則會清除所有內容。 –

回答

0

只需計算出每個學生的所有值相加,然後除以在計算值:

for student in classdict: 
    sum(map(int, classdict[student]))/float(len(classdict[student])) 

如果你做的studentvalue = int(people[1])代替studentvalue = str(people[1])它會更簡單:

for student in classdict: 
    print("{} - {}".format(student, sum(classdict[student])/float(len(classdict[student])))) 
+0

這會返回學生分數,我怎樣才能在那裏添加名字? – marrio2701

+0

只是打印學生 - 這是關鍵,我編輯了第二個變種來展示給你。 –

+0

我不確定這是否符合您的想法。 'Classdict [學生]'似乎是一份名單清單,至少其中一個值可能是學生的名字。 –