计算文本文件中每行分数的平均值

时间:2015-05-03 18:33:43

标签: python sorting readfile mean

我有一组名称,在.txt文件中为每一个分配了3个分数,我想打印每个名称的平均分数。到目前为止,我有以下代码,但我仍然坚持如何平均分数并将其打印在python shell中。

File_name=open('class_2.txt', 'r')
List_ = File_name.readlines()
List_.sort()
print('Class average scores below :')
for line in  List_:
    print(line)

此代码按字母顺序打印名称并附加分数,但不会打印平均分数。

.txt文件的格式如下:

tom,6,4,7

steve,3,6,4

john,10,9,8

mike,6,8,9

2 个答案:

答案 0 :(得分:0)

程序:

with open('class_2.txt') as students:
    for student in sorted(students):
        name, *scores = student.split(',')
        average = sum(map(int, scores)) / len(scores)
        print(name, average)

输出:

john 9.0
mike 7.666666666666667
steve 4.333333333333333
tom 5.666666666666667

答案 1 :(得分:-1)

你缺乏进行平均计算的代码。请尝试以下修改:

with open('class_2.txt', 'r') as f:
    List_ = f.readlines()
    List_.sort()
    print('Class average scores below :')
    for line in List_:
        data = line.split(',')
        print(data[0], sum([int(score) for score in data[1:]]) / len(data) - 1)

这可以通过使用split()方法将数据拆分为数组,如['tom','6','4','7'],然后使用Python的切片将值提取为整数,总和他们并平均他们。