Для сортировки списка:
l = ['Ishaan - 72', 'Jack - 84', 'Bob - 23', 'Louis - 77']
Использование:
[j[::-1] for j in sorted([i.split(' - ')[::-1] for i in l],key=lambda x: int(x[0]))]
Дает:
[['Bob', '23'], ['Ishaan', '72'], ['Louis', '77'], ['Jack', '84']]
Теперь иметь '-':
[' - '.join(k for k in j[::-1]) for j in sorted([i.split(' - ')[::-1] for i in l],key=lambda x: int(x[0]))]
Дает:
['Bob - 23', 'Ishaan - 72', 'Louis - 77', 'Jack - 84']
Здесь ответ находится в порядке возрастания. Для обратного:
[' - '.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]))]
дает:
['Jack - 84', 'Louis - 77', 'Ishaan - 72', 'Bob - 23']