Вы можете разделить отдельные строки в пространстве и преобразовать первую часть в целое число.
Затем вы можете добавить номер и человека в качестве кортежа в ваш список:
Top_5 = []
Top5_File = """
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
""".strip().split("\n")
for number in Top5_File:
number, person = number.strip().split(" ")
Top_5.append((int(number), person))
# sort only once, outside the loop!
Top_5.sort(reverse=True)
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)
Вывод:
(100, 'rob')
(76, 'bor')
(76, 'p2')
(74, 'p1')
(66, 'p2')
Если вам не нужен кортеж, вы можете использовать:
for number in Top5_File:
Top_5.append(number.strip())
Top_5.sort(key=lambda x: int(x.split(" ")[0]), reverse=True)
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)
Вывод:
100 rob
76 bor
76 p2
74 p1
66 p2