试图从结果字典中获得平均值

时间:2015-02-05 11:57:16

标签: python average

对于这段代码,我试图获得一个类的整体平均值。我打开文件,然后从字典中删除所有字符和行条,只获得每个学生的分数。然后,我尝试获取文件的总和,然后除以长度,但我得到一个错误。

average = (sum(file)/len(file))
TypeError: unsupported operand type(s) for +: 'int' and 'str'

这是代码:

    with open('classtwo.csv', 'r', newline='') as csv_file:
        newfile = (str.strip("A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z") for str in csv_file if str.strip("A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z"))
        file = [line.strip() for line in newfile if line.strip()]
        average = (sum(file)/len(file))
        print(average)    

任何人都知道如何解决此错误?

1 个答案:

答案 0 :(得分:0)

file是一个字符串列表。 sum函数需要一个数字。 要获得平均值,您应该将file中的每个条目转换为数字:

e.g。 file = [float(x) for x in file]