【发布时间】:2015-03-01 13:14:25
【问题描述】:
我正在尝试按学生从高到低对班级的平均分数进行排序。
到目前为止,这是我的代码:
with open("class.txt") as f:
d = {}
for line in f:
column = line.split(":")
names = column[0]
scores = int(column[1].strip())
count = 0
while count < 3:
d.setdefault(names, []).append(scores)
count = count + 1
for names, v in sorted(d.items()):
average = (sum(v)/len(v))
print(names,average)
averages=[]
averages.append(average)
我已经计算出平均值,但是我一直坚持如何按从高到低对这些平均值进行排序,这是我尝试过的
list = sorted(averages, key=lambda tup: tup[1], reverse=True)
但是,它给出了错误..
TypeError: 'float' object is not subscriptable
我还注意到它不仅仅计算最近三个分数的平均值,它计算出文本文件中学生所有分数的平均值,但是我希望它只计算最近三个分数每个学生的分数
我是 Python 的新手,我不确定我做错了什么,所以任何帮助指针将不胜感激,提前谢谢你!
【问题讨论】:
-
column[0][Click Here](null)??? -
是否允许让其他人编写您的 GCSE 考试代码?
-
@thefourtheye 哦,对了,抱歉,现在修好了.. 不知道是怎么到那里的