Естественная сортировка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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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