Cортировка списка стринг по последним "цифрам"
Главная › Форумы › Python › Синтаксис и родные библиотеки Python › Cортировка списка стринг по последним "цифрам"
- В этой теме 13 ответов, 4 участника, последнее обновление 6 лет, 9 месяцев назад сделано
Denis.
-
АвторСообщения
-
Только зашел на форум чтобы посмотреть как сортировать в питоне многоуровневый список – а тут уже ответ есть :-)
Иногда бывает нужно сначала сортировать по алфавиту, а затем по цифрам. (да еще без учета регистра, т.е. независимо от того большие или маленькие буквы):
на выходе
[[‘elm0’, ‘Elm2’, ‘elm9’, ‘elm10’], [‘alm12’, ‘Elm11’, ‘elm13’]]также работает и со вложенными списками вида (но это не точно)):
InList = [[‘elm0’, ‘elm10’, ‘Elm2’, ‘elm9’, [‘olm0′,’olm10′,’olm1′,’Olm2′,’olm9’]],[‘elm13′,’alm12′,’Elm11’]]
p.s. вложенный список должен быть в концеДмитрий Дмитриев
УчастникПодскажите, как в Динамо добавить список к этому скрипту?
заменить строчку 2 на InList = IN[0]
а 27 на OUT = OutListА можно как-то использовать второй скрипт если список уже в 4 уровня и его нужно сохранить? На выходе получить 5-уровневый список отсортированный по 2 уровню.
Скрипт и так сортирует по 2 уровню но принимает только список с 3 уровнями…
чтобы избавиться от вложенности надо указывать нулевой индекс, т.е.
если list=[[1,2,3 ]], то применив OUT=list[0] , получим list=[1,2,3 ]
если list=[[[1,2,3 ]]], то применив OUT=list[0][0] , получим list=[1,2,3 ]
ну и ноды flatten уже все знают
Так мне не нужно избавляться. На вход я хочу подать список в 4 уровня уже отсортированный и в таком виде (все предыдущие уровни) нужно сохранить. А на выходе будет 4 или 5 не важно (как ты написал “ну и ноды flatten уже все знают”) :-)
Но скрипт ругается и не хочет принимать ничего кроме 3 уровней… или я не вьезжаю… (((
С питоном к сожалению не дружу от слова совсем…
Не знаю что я на клацал – но ошибки уже нет … правда скрипт на последнем подходе (когда лист становится 4 уровня) все рамно не сортирует … эх …
может динаме не нравится ошибка в слове “групировка”… 0_О XD всем хочется иногда покапризничать…
скиньте сюда файлик rvt (оставьте только то что нужно, если файл большой ) и dyn
Вообщем я мельком глянул , не ручаюсь за адекватный результат – проверьте сами
надо переплетение сменить и пару строк в коде :
Не мы видимо немного друг друга не понимаем… В кружочке вы поставили “@L2” – превратили отсортированный 4 уровненный список в 3 уровненный … при это питон и без изменений хорошо справлялся с 3 уровненными списками – но мне нужно оставить 4 уровня (зачем я до этого дважды сортировал и группировал чтоб потом убить эти группы…)
К сожалению такой способ не подходит…
Вы натолкнули меня на правильную идею. Сплющить список перед питоном, отсортировать а потом выровнять до необходимого мне в конце блока… вот как-то так… в конце вышел список в 5 уровней (4 было до этого + еще 1 новый).
Спасибо – свежий взгляд подсказал идею – или просто совпадение :-)))
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.