我正在尝试找到一个具有多个值的键(名称)的平均分数(值),字典看起来像这样:
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
答案 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])
每次迭代。