Естественная сортировка ⇐ Python

Программы на Python
Anonymous
Естественная сортировка

Сообщение Anonymous »

У меня есть несколько файлов, которые нужно отсортировать по имени. К сожалению, я не могу использовать обычную сортировку, так как я также хочу сортировать числа в строке, поэтому я провел небольшое исследование и обнаружил, что то, что я ищу, называется естественной сортировкой.
Я попробовал приведенное здесь решение, и оно сработало отлично.
Однако для таких строк, как PresserInc-1_10.jpg и PresserInc-1_11.jpg, что приводит к сбою этого конкретного алгоритма естественного ключа, поскольку оно соответствует только первому целому числу, которое в данном случае будет 1 и 1, и поэтому сортировка сбрасывается. Я думаю, что может помочь сопоставить все числа в строке и сгруппировать их вместе, поэтому, если у меня есть PresserInc-1_11.jpg, алгоритм должен вернуть мне 111, поэтому мой вопрос: возможно ли это?
Вот список имен файлов:

Код: Выделить всё

files = ['PresserInc-1.jpg', 'PresserInc-1_10.jpg', 'PresserInc-1_11.jpg', 'PresserInc-10.jpg', 'PresserInc-2.jpg', 'PresserInc-3.jpg', 'PresserInc-4.jpg', 'PresserInc-5.jpg', 'PresserInc-6.jpg', 'PresserInc-11.jpg']


Подробнее здесь: https://stackoverflow.com/questions/111 ... al-sorting

Вернуться в «Python»