我有一些代码,其中使用名称列表和结果文件(最终是多个文件)(团队、名称、地点)。我正在寻找的最终结果是将每个人的姓名(键)与点(值)列表相关联。但是,当我使用下面的代码时,我最终得到的结果如下
'Abe': [100, 80, 90], 'Bob': [100, 80, 90], 'Cam': [100, 80, 90] 而不是
“阿部”:[100],“鲍勃”:[80],“卡姆”:[90]
f=open("NamesList.txt","r")
lines=f.read().splitlines() #get names
Scores=dict.fromkeys(lines,[]) #make a dictionary with names as keys, but no values yet
f1=open("ResultsTest.txt","r") #open results file: column1-team, column 2- name, column 3-place
lines=f1.read().splitlines()
A={1:100,2:90,3:80} #points assignment, 100 for 1, 90 for 2, 80 for 3
for l in lines:
a=l.split('\t') #a[0] is team a[1] is name a[2] is place
score=A.get(int(a[2])) #look up points value corresponding to placing
Scores[a[1]].append(score)
我可以通过添加得到我需要的结果
Scores[a[1]]=[]
在倒数第二行之前,但我相信这会阻止我最终能够向每个键附加多个分数(因为我在循环内重新初始化)。任何对我的错误的见解将不胜感激。