Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 15, 2010 13:36:52

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Сортировка циферно-символьных значений

Пока нашел время ответить, уже сделали, но не пропадать же:

# -*- 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



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#2 Апрель 15, 2010 14:19:20

pochechyev
От:
Зарегистрирован: 2008-02-29
Сообщения: 199
Репутация: +  0  -
Профиль   Отправить e-mail  

Сортировка циферно-символьных значений

to PooH:
Спасибо. :)

Все оказалось достаточно просто. Но я не понимаю как работает функция sort() и не знал что значение key может быть функция которая возвращает список.

Был бы крайне благодарен за ссылку на подробное описание работы функции sort(), в инете нормального описания найти не смог.



Офлайн

#3 Апрель 15, 2010 14:25:49

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Сортировка циферно-символьных значений

pochechyev
Был бы крайне благодарен за ссылку на подробное описание работы функции sort(), в инете нормального описания найти не смог.
Сортировка и группировка списков в python (groupby, sorted)

Офлайн

#4 Апрель 15, 2010 14:26:52

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Сортировка циферно-символьных значений

Офлайн

#5 Апрель 15, 2010 15:29:13

pochechyev
От:
Зарегистрирован: 2008-02-29
Сообщения: 199
Репутация: +  0  -
Профиль   Отправить e-mail  

Сортировка циферно-символьных значений

Спасибо за ссылки, но я говорил о другом.

Меня интересует сам принцип работы функции sort, а в статьях, ссылки на которые Вы дали, об этом ничего не нет. Да и статьи больше похожи на перевод офф. документации.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version