找到平均数

时间:2015-09-02 15:13:27

标签: python

对于任务我需要每个人的平均分数,所以如果Dan在一行中得分为5而在另一行得到7,那么他将被显示为平均值为6.平均值是我需要订购和显示的。 因此,我必须将人们获得的最高平均分数排序到最低平均值,并在python中显示它的排序版本。我必须排序的文件之一就像这样。

鲍勃:0
鲍勃:1
简:9
德雷克:8
丹:4
乔希:1
丹:5

我如何在python上执行此操作?

1 个答案:

答案 0 :(得分:1)

d = {}
with open('in.txt') as f:
    data = f.readlines()
for x in data:
    x = x.strip()
    if not x:
        continue
    name = x.split(':')[0].strip()
    score = int(x.split(':')[-1].split('/')[0].strip())
    if name not in d:
        d[name] = {}
        d[name]['score'] = 0
        d[name]['count'] = 0
    d[name]['count'] += 1
    d[name]['score'] = (d[name]['score'] + score) / float(d[name]['count'])

ds = sorted(d.keys(), key=lambda k: d[k]['score'], reverse=True)

for x in ds:
    print('{0}: {1}'.format(x, d[x]['score']))