-6

我正在 python 2.6 中建立职业统计的前 10 名列表

html_log:jeff 1153.3 1.84 625:54 1 2 71 3 2 10 7:58 499 3 5 616:36 241 36 
html_log:fred 28.7 1.04 27:34 -10 18 13 0:48 37 18 8 -3.63 
html_log:bob 1217.1 1.75 696:48 1 5 38 6 109 61 14:42 633 223 25 435:36 182 34 html_log:jeff 2153.3 1.44 125:54 2 6 41 2 7 6 3:58 599 2 6 716:36 341 36  ... continues

在这种情况下,我需要能够在“html_log:”标签之后的文本中找到用户名

我还需要评级(用户名旁边的第一组值。)

输出将检查整个 txt 文件并输出前 10 名评分最高的玩家。

请注意,并不总是有 16 组值。

最后,文本文件包含不同的赛季,因此球员姓名可能会重复。如果用户名匹配,我需要添加评分统计信息并计算出职业总数。最终输出应该是:

jeff 2268.6 * (both entries put together if usernames match)
bob 1217.1
fred 28.7 
4

1 回答 1

0

(反对我更好的判断)我会为你做这件事的一部分:

txt='''\
html_log:jeff 1153.3 1.84 625:54 1 2 71 3 2 10 7:58 499 3 5 616:36 241 36 
html_log:fred 28.7 1.04 27:34 -10 18 13 0:48 37 18 8 -3.63 
html_log:bob 1217.1 1.75 696:48 1 5 38 6 109 61 14:42 633 223 25 435:36 182 34 
html_log:jeff 2153.3 1.44 125:54 2 6 41 2 7 6 3:58 599 2 6 716:36 341 36
'''

stats={}
for line in txt.splitlines():
    tag=line.split(':',1)[1].split(' ',1)[0]
    stats.setdefault(tag,[]).append(line.split(':',1)[1].split(' ',1)[1])

print stats 

印刷:

{'bob': ['1217.1 1.75 696:48 1 5 38 6 109 61 14:42 633 223 25 435:36 182 34 '], 
 'fred': ['28.7 1.04 27:34 -10 18 13 0:48 37 18 8 -3.63 '], 
 'jeff': ['1153.3 1.84 625:54 1 2 71 3 2 10 7:58 499 3 5 616:36 241 36 ', '2153.3 1.44 125:54 2 6 41 2 7 6 3:58 599 2 6 716:36 341 36']}

剩下的由你决定(用统计数据分割字符串,处理统计数据列表中不明确的':',转换为浮点数等)

于 2013-05-30T23:39:40.003 回答