MapaTМараТ, поясните я не понимаю, почему это работает.
Можно еще и так:>>> l = ['2', '1a', '11a', '1', '11', '1b', '11c', '11d']
>>> import re
>>> def srt(s):
mo = re.match(r'(\d+)(\w*)', s)
return int(mo.group(1)), mo.group(2)
>>> l.sort(key=srt)
>>> l
['1', '1a', '1b', '2', '11', '11a', '11c', '11d']
для каждого элемента списка функция srt возвращает кортеж ( digit, letter)
а потом список сортируется с помощью ключа. НО мне не понятно, почему с помощью такого ключа получается нужный результат.
Почему в результате сортировки не может получится что то типа такого
– когда отсортированы только первые элемента кортежа, без учета букв.