我知道如何创建一个按名称(键:值)计算总分的字典,但我想为名称出现的次数添加第二个值(键:(值,值))。然后我希望通过将一个值除以另一个值来获得平均分数。
Cleese 80
Gilliam 78
Jones 69
Jones 90
Cleese 90
Chapman 90
Chapman 100
Palin 80
Gilliam 82
Cleese 85
Gilliam 80
Gilliam 75
Idle 91
Jones 90
Palin 90
Cleese 88
这是我的代码:
inFile = open('grades.txt','r')
grades={}
for line in inFile:
person=line.split()
if person[0] not in grades:
grades[person[0]]=float(person[1],1)
else:
grades[person[0]]=(float(person[1])+grades[person[0]],grades[person][1]+1)
print(grades)
inFile.close()
那应该打印(按某种顺序):
Gilliam 78.75
Jones 83.0
Cleese 85.75
Chapman 95.0
Idle 91.0
Palin 85.0
我得到一个错误,浮动只需要1个值。我还需要添加一些代码,将每个人的第一个存储值除以第二个存储值 - 平均分数。
答案 0 :(得分:0)
使用元组为每个键存储多个值:
myDict['Cleese'] = (80, N)
要更新元组,您不能只做myTuple[1]++
。您需要创建一个新元组,例如myDict['Cleese'] = (myDict['Cleese'][0], myDict['Cleese'][1]+1)