Найти - Пользователи
Полная версия: сортировка списка по части элемента
Начало » Python для новичков » сортировка списка по части элемента
1
ilia_2s
Господа, подскажите пожалуйста:

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

Гугл красивых решений по данному вопросу не подсказывает…
Zubchick
так у вас список отсортирован уже.
>>> 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']
ilia_2s
Ну это в примере он отсортирован, на самом деле нет….
У меня в беспорядке результаты…. А у Вас так, то есть работает????

Странно….

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

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

)))))) Всем спасибо!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB