Форум сайта python.su
Пока нашел время ответить, уже сделали, но не пропадать же:
# -*- encoding: utf-8 -*-
import re
ls = [u'57А', u'51', u'1', u'1/9', u'12', u'14', u'15', u'15 к2', u'18',
'19', u'2/4', u'22', u'22А', u'23', u'24', u'25', u'25 к2', u'26',
'28', u'3', u'32', u'36/34', u'37', u'38', u'40', u'41', u'42', u'43', u'44',
u'45/7 к2', u'45/7', u'46', u'47/8', u'48/7', u'49', u'53А', u'55',
'59', u'59А', u'6/3', u'7/9', u'72', u'8/6', u'80', u'82']
class SortHash:
RE = re.compile(r'(\d+)|([^\d\s\/]+)')
def __call__(self, s):
def adjust(s):
try:
return int(s)
except ValueError:
return s
return tuple(adjust(x.group()) for x in self.RE.finditer(s.upper()))
for x in sorted(ls, key=SortHash()):
print x
Офлайн
to PooH:
Спасибо. :)
Все оказалось достаточно просто. Но я не понимаю как работает функция sort() и не знал что значение key может быть функция которая возвращает список.
Был бы крайне благодарен за ссылку на подробное описание работы функции sort(), в инете нормального описания найти не смог.
Офлайн
pochechyevСортировка и группировка списков в python (groupby, sorted)
Был бы крайне благодарен за ссылку на подробное описание работы функции sort(), в инете нормального описания найти не смог.
Офлайн
и тут есть пример в конце статьи
Офлайн
Спасибо за ссылки, но я говорил о другом.
Меня интересует сам принцип работы функции sort, а в статьях, ссылки на которые Вы дали, об этом ничего не нет. Да и статьи больше похожи на перевод офф. документации.
Офлайн