我有一個文件,其中有一組人的分數。每個人有3分。我只能顯示該人的最高分數。但是,我無法打印到python shell,最高得分按降序排列。例如:將文件中的列從高到低排序
Persona 12
Personb 14
Personc 17
Persond 11
而我希望它按照得分的降序排序。因此,它應該是這樣的:
personc 17
personb 14
persona 12
persond 11
到目前爲止,我已經創造了這個代碼,但是我不知道如何繼續:
with open("class.txt","r") as file:
lines = file.readlines()
with open('class.txt','w') as fileout:
for line in lines:
fields = line.split()
name, grades = fields[0], fields[1:]
grades = [int(grade) for grade in grades]
grades.sort()
highest = str(max(grades))
grades = [str(highest) for grade in grades]
rows = filter(None, [line.strip().split() for line in open("file.txt", "r")])
data = [(name, int(highest)) for name, highest in rows]
for name, highest in sorted(data, key=itemgetter(1)):
print("{0:s} {1:d}".format(person, score))
Theres發生在數據行上的一個錯誤,它說ValueError:太多的值來解壓(預計2) – user3350669
我沒有提醒你數據的假設**乾淨**和**確切* *! –
哦,我解決了這個問題,但它仍然沒有按降序排列。我已經更新了代碼,以便您可以看到哪裏出錯了 – user3350669