Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 4, 2011 22:19:39

ilia_2s
От:
Зарегистрирован: 2011-02-04
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

сортировка списка по части элемента

Господа, подскажите пожалуйста:

Нужно список отсортировать вида
source=, по цифрам после второй “;”,
думал сделать как-то так source.sort( key = lambda x: x.split(';') ), но походу дела, что-то не правильно.

Гугл красивых решений по данному вопросу не подсказывает…



Офлайн

#2 Фев. 4, 2011 22:28:27

Zubchick
От:
Зарегистрирован: 2009-07-08
Сообщения: 613
Репутация: +  0  -
Профиль   Отправить e-mail  

сортировка списка по части элемента

так у вас список отсортирован уже.

>>> source=["a;b;123","c;d;345","e;f;567", 's;h;100']
>>> source.sort(key = lambda x: x.split(';')[2])
>>> source
['s;h;100', 'a;b;123', 'c;d;345', 'e;f;567']



Офлайн

#3 Фев. 4, 2011 22:34:22

ilia_2s
От:
Зарегистрирован: 2011-02-04
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

сортировка списка по части элемента

Ну это в примере он отсортирован, на самом деле нет….
У меня в беспорядке результаты…. А у Вас так, то есть работает????

Странно….

А может быть глюк, потому что там 20 миллионов элементов в списке?

Программка отрабатывает без ошибок, щас еще раз попробую.



Отредактировано (Фев. 4, 2011 22:35:08)

Офлайн

#4 Фев. 4, 2011 22:50:05

ilia_2s
От:
Зарегистрирован: 2011-02-04
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

сортировка списка по части элемента

Да, понял в чем проблема, он их ни как целые сортирует, а как строковые, поправил на key = lambda x: int(x.split(';')) , теперь все в порядке!

)))))) Всем спасибо!



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version