【发布时间】:2018-10-19 11:28:45
【问题描述】:
这是我的代码:
Top_5 = []
with open (("winscorefile.txt"),"r") as Top5_File:
for number in Top5_File:
Top_5.append(number)
Top_5.sort()
Top_5.reverse()
number_of_items = len(Top_5)
while number_of_items > 5:
Top_5.pop()
number_of_items = len(Top_5)
for data in Top_5:
print(data)
我的文本文件看起来像(它是分数和用户名的集合):
62 rob
100 rob
56 ROB
54 rob
76 bor
64 bor
52 a
44 p1
54 p1
46 p2
74 p1
52 p2
66 p2
76 p2
38 p2
60 p1
58 p1
我的文件旨在输出前 5 个最高分。它正在这样做,但只输出最高的两位数。我不知道为什么它忽略了100的分数。
【问题讨论】:
-
您的输入被视为字符串,而不是数字,因此它是按字典顺序排序的
-
@MichaelButscher 谢谢,我该如何更改?
-
每行必须
split为两个数据元素(数字和文本),然后将数字字符串转换为int并与文本一起放到一个元组中再排序。 -
@MichaelButscher 谢谢,我正在努力使我的代码适应这个,你能发送一个例子吗?
-
@MichaelButscher 非常感谢你的帮助
标签: python python-3.x list