我已经创建了从文本文件中获取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()
答案 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])