如何获得多个值的平均值? [蟒蛇]

时间:2015-02-04 13:45:31

标签: python sorting dictionary

我正在尝试找到一个具有多个值的键(名称)的平均分数(值),字典看起来像这样:

James Scored: 7
Mason Scored: 3
James Scored: 2
Mason Scored: 5

如果存在相同的密钥,则已经附加了,所以现在我只需要找出一个循环以找到平均值,但我不知道为什么下面的代码对我不起作用。对此有点新意,所以解释会很棒。

到目前为止,我已成功制作了代码:

dictionary = {}
#opens the file with the data
f = open('ClassA.txt', 'r')
#a empty dictionar created
d = {}
#loop to split the data in the ext file
for line in f:
        name, scores = line.strip().split(':')
        dictionary[name.strip()] = scores.strip()
        columns = line.split(": ")
        #identifies the key and value with either 0 or 1
        name = columns[0]
        scores = columns[1].strip()
        #appends values if a key already exists
        d.setdefault(name, []).extend(scores)
for scores in sorted(d.items()):
        average = sum(scores)/len(scores)
        print ("{} Scored: {}".format(name,average))

通缉输出将是:

James: 4.5
Mason: 4

1 个答案:

答案 0 :(得分:0)

确实你的变量v没有定义。除此之外我认为字典“字典”和字典“d”是一样的吗?它们看起来应该具有相同的内容。

无论如何,请在最后一个代码块中尝试:

for name, scores in d.iteritems():
        average = sum(scores)/len(scores)
        print ("{} Scored: {}".format(name, average))

for name, scores in d.iteritems():

返回例如: ("Josh":[1,2,3])

每次迭代。