2015-03-17 2 views
-1

Итак, я создал викторину. Я сохранил викторину пользователей в текстовом файле, используя python. Я выяснил, как разрешить учителю просматривать имена пользователей в алфавитном порядке с их оценкой из текстового файла.Ошибка печати наивысшего значения, считанного из файла

Это то, что мой код выглядит так далеко ..

def alpha(): 
    b = open("Class X.txt" , "r") 
    fo = b.readlines() 
    for x in sorted (fo): 
     print(x) 
def beta(): 
    b = open("Class Y.txt" , "r") 
    fo = b.readlines() 
    for x in sorted(fo): 
     print(x) 
def charlie(): 
    b = open("Class Z.txt" , "r") 
    fo = b.readlines() 
    for x in sorted(fo): 
     print(x) 
option = input("Do you want to review the scores in/from: A)Alphabetical order with highest score. 

if option == "A": 
    if Class == "X": 
    alpha() 

    elif Class == "Y": 
    beta() 

    elif Class == "Z": 
    charlie()` 

То, что я пытаюсь сделать, это напечатать все имена пользователей в алфавитном порядке из текстового файла, который я был успешным. Тем не менее, у меня были большие проблемы с попыткой напечатать наивысший балл каждого пользователя рядом со своим именем, а не с любой их оценкой.

Мой текстовый файл выглядит следующим образом.

Joe:2 
Jale:4 
Laurence:1 
Harry:2 
Nakita:2 

мне было интересно, может ли кто-нибудь помочь мне понять, как включить только самый высокий балл с именем пользователей в алфавитном порядке, как я сделал, из текстового файла, который был установлен, словно как это было показано выше , Я также использовал версию Python 3.3.2.

+0

как выглядит ваш текстовый файл – letsc

ответ

0
from operator import itemgetter 

lines = [line.strip().split(':') for line in open('results.txt')] 


for each in lines: 
    each[1] = int(each[1]) 
lines.sort(key=itemgetter(1)) 

for each in lines: 
    print each[0],':',each[1] 

Выход:

Laurence : 1 
Joe : 2 
Harry : 2 
Nakita : 2 
Jale : 4 

Это распечатывает список имен, отсортированный по порядку возрастания баллов. Если вы хотите в алфавитном порядке использовать (key=itemgetter(0))

Смежные вопросы