【发布时间】:2015-02-19 17:46:19
【问题描述】:
我正在尝试制作一个评分系统,我得到了一个包含大量(玩家)的文本文件。我已经创建了一个字典并设法在其中添加了所有名称,但是当我尝试添加点时,它们只得到最后一个数字,而不是每个名称的所有组合。那么如何为每个名字新建一个字典,然后加上名字对应的点呢?
所以我基本上需要取其中一个名字“Anders Johansson”并将他的分数添加到他在字典中的名字中,他的名字会以不同的分数多次出现在 score.txt 中。
我的想法是,我不需要运行整个乐谱文件并为每个名字创建一个实例,然后为每个名字添加相应的乐谱,“Anders Johansson”可能会在 score.txt 中出现多达 100 次。 此代码会将名称输入到 final_score 而不是总分。
final_list, file, final_score = [], open('score.txt','r'), {}
string = file.read()
lista = string.split('\n')
lista.sort()
for i in lista[1:]:
final_score[str(i[0:-2])] = 0
final_score[str(i[0:-2])] += int(i[-2:]) # possible error location
final_list = list(final_score.items())
print(sorted(final_list, key=lambda score: score[1],reverse=True))
Example from the file:
Anders Johansson 1
Karin Johansson 1
Eva Johansson 0
Erik Andersson 1
Gunnar Andersson 2
Eva Andersson 1
Nils Eriksson 1
Anders Eriksson 0
Maria Eriksson 1
and so on:
【问题讨论】:
标签: python dictionary add