сравнивать сначала по длине, а потом уже посимвольно
Расширение нужно отсечь перед преобразованием в int: In [14]: lst = ["100.jpg", "20.jpg", "11.jpg", "3.jpg"] In [15]: sorted(lst) Out[15]: ['100.jpg', '11.jpg', '20.jpg', '3.jpg'] In [16]: sorted(lst, key=lambda s: int(s.split('.')[0])) Out[16]: ['3.jpg', '11.jpg', '20.jpg', '100.jpg']
Обсуждают сегодня