Python 对文件中的平均分数进行排序。列和降序
我有一份每人3分的档案。我想用这些分数,得到所有3个分数的平均值。分数由制表符分隔,并按降序排列。例如:Python 对文件中的平均分数进行排序。列和降序,python,file,sorting,text-files,average,Python,File,Sorting,Text Files,Average,我有一份每人3分的档案。我想用这些分数,得到所有3个分数的平均值。分数由制表符分隔,并按降序排列。例如: jack 10 6 11 claire 3 7 3 conrad 5 4 6 这些人得出的平均结果是: jack 9 conrad 5 claire 4 我希望这些能够打印到pythonshell中,但是不能保存到文件中 打开(“file.txt”)作为文件1: d={} 对于文件1中的行: 列=行。拆分(“/t”) 名称=列[0] sc
jack 10 6 11
claire 3 7 3
conrad 5 4 6
这些人得出的平均结果是:
jack 9
conrad 5
claire 4
我希望这些能够打印到pythonshell中,但是不能保存到文件中
打开(“file.txt”)作为文件1:
d={}
对于文件1中的行:
列=行。拆分(“/t”)
名称=列[0]
scores=int(列[1].strip())
使用集合或字典的概念。两者都是相似的:它们只能包含某个“键”一次
因此,如果您创建了一个存储每个分数内容的字典,并使用“名称”作为键,那么您可以创建一个如下所示的数据结构:
student_scores = {'dave': [9, 8, 11], 'john': [12, 7, 10], ... }
for name, list_of_scores in student_scores.items():
# do something with name & list...
这种数据结构可以在第二步中进行分析,很容易计算出平均值
然后写一个循环,通过你的学生的分数
,并平均每个分数。您可以像这样循环浏览字典:
student_scores = {'dave': [9, 8, 11], 'john': [12, 7, 10], ... }
for name, list_of_scores in student_scores.items():
# do something with name & list...
希望这能给你一些想法,而不只是为你编码
另外:当然,请记住,“平均”是指数字列表的
和
,除以数字列表的len
。幸运的是,这两个都存在于Python中,并且在列表上操作 你可以用字典
scores = {}
with open("class6Afile.txt") as file1:
for line in file1:
column = line.split("/t")
names[column[0]] = column[1:]
在此之后,您可以迭代键、值对,如图所示,并根据相应的名称查找每组值的平均值
此外,您不能以这样的方式将名称存储在数组中。我假设名称是一个数组,所以正确的方法是
names.append(column[0])
您想要的结果位于列表的顶部 #忽略存在的语法错误!我不是python开发人员:P