如何在文本文件中平均排列得分?

时间:2016-05-11 10:04:23

标签: python sorting

我已经创建了从文本文件中获取3个分数的代码并对名称进行排序 按字母顺序,但我很难知道如何按平均值将得分最高到最低排序

#Opens up the text file "class1.txt"
            class1 = open('class1.txt', "r")
#Reads the lines in class as' results file
            classread = class1.readlines()
#Alerts the user that the names in class1.txt will be sorted alphabetically
            print("Names sorted alphabetically")
            print()
            print("Name           Last 3 scores")
            print()
#Sorts the list alphabetically
            for word in sorted(classread):
                word = word.rstrip()
                print(word)
                class1.close()

1 个答案:

答案 0 :(得分:1)

函数sorted可以接收名为key的关键字参数,该参数是为列表中的每个元素返回可比较参数的函数。

如果你有两个名字在一个中,而平均值在另一个中,你可以使用:

indexes = sorted(range(len(names)), key=lambda i: averages[i])
sortedNames = [names[i] for i in indexes]

如果你有一个name: average形式的词典,你可以使用:

sortedNames = sorted(nameDict.keys(), key=lambda name: nameDict[name])