Это также имеет тот же ответ, что и ваш предыдущий вопрос, но изменено:
l = ['Ishaan - 72', 'Jack - 84', 'Bob - 23', 'Louis - 77']
[' - '.join(k for k in j[::-1]) for j in sorted([i.split(' - ')[::-1] for i in l],reverse = True,key=lambda x: int(x[0]))][:5]
Так что, если ваш отсортированный список list1
:
top5 = list1[:5]
Если вы используете лямбду :
ScoresWithNames.sort(key=lambda x: int(x.split(" - ")[-1]),reverse = True)
print(ScoresWithNames[:5])
Теперь, если вы хотите напечатать его с новой строкой, у вас есть два способа:
for i in top5:
print(i)
или:
print('\n'.join(i for i in top5)) # or scoreswithnames