2015-10-20 60 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 [学生]'似乎是一份名单清单,至少其中一个值可能是学生的名字。 –