2016-05-11 2 views
-2

Я создал код для 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

Пример ввода файла? –

+0

Вам нужна ключевая функция. См. Https://wiki.python.org/moin/HowTo/Sorting –

ответ

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])