Как сделать сортировку списка по определенным символам?
Есть список со названиями интерфейсов. Подскажите, как сделать сделать сортировку по номеру интерфейса? Например, interface Tunnel 0, interface Tunnel 1, interface Tunnel 2 и так далее..
some_list = ['interface Tunnel 0' , 'interface Tunnel 10', 'interface Tunnel 5' , 'interface Tunnel 3', 'interface Tunnel 7' , 'interface Tunnel 23']
Просто сортировка через sort() выдает мне не тот результат:
['interface Tunnel 0', 'interface Tunnel 10', 'interface Tunnel 23', 'interface Tunnel 3', 'interface Tunnel 5', 'interface Tunnel 7']
Ответы (2 шт):
Автор решения: strawdog
→ Ссылка
some_list = ['interface Tunnel 0' , 'interface Tunnel 10', 'interface Tunnel 5' , 'interface Tunnel 3', 'interface Tunnel 7' , 'interface Tunnel 23']
res = sorted(some_list, key=lambda x: int(x.split()[-1]))
Результат:
['interface Tunnel 0',
'interface Tunnel 3',
'interface Tunnel 5',
'interface Tunnel 7',
'interface Tunnel 10',
'interface Tunnel 23']
Автор решения: кирилл пановицин
→ Ссылка
Через метод sort передаем функцию в key (сортируем по последнему числу):
some_list.sort(key=lambda x: int(x.split()[-1]))
Если хотим вернуть этот список:
print(sorted(some_list, key=lambda x: int(x.split()[-1])))