Я пытаюсь в течение нескольких дней исправить это, но я просто не могу с этим справиться.python: Сортировка списка списков по диапазону элементов
У меня есть список списков, где каждый список состоит из значений от 0 до 5:
[[ 0. 0. 4. 2. 2. 2. 2. 2. 2. 2.]
[ 0. 0. 1. 2. 3. 3. 3. 3. 3. 3.]
[ 0. 0. 2. 3. 4. 4. 1. 2. 1. 2.]
[ 0. 0. 3. 4. 5. 1. 4. 4. 5. 5.]
...
[ 0. 0. 5. 3. 3. 3. 4. 3. 4. 3.]
[ 0. 0. 3. 4. 1. 1. 1. 1. 4. 4.]
[ 0. 0. 3. 4. 1. 3. 3. 3. 3. 1.]
[ 0. 0. 1. 4. 4. 5. 3. 4. 3. 1.]]
Теперь я хотел бы отсортировать этот список, начиная с самим последним элементом, то вторыми последними и т.д. вплоть до самого начала, чтобы получить что-то вроде:
[[ 0. 0. 3. 4. 1. 3. 3. 3. 3. 1.]
[ 0. 0. 1. 4. 4. 5. 3. 4. 3. 1.]
[ 0. 0. 5. 3. 3. 3. 3. 3. 4. 1.]
[ 0. 0. 2. 3. 4. 4. 1. 2. 1. 2.]
...
[ 0. 0. 3. 4. 1. 1. 1. 1. 4. 4.]
[ 0. 0. 3. 3. 3. 4. 4. 4. 4. 4.]
[ 0. 0. 4. 4. 3. 4. 5. 5. 1. 5.]
[ 0. 0. 3. 4. 5. 1. 4. 4. 5. 5.]]
всех ответов на сортировку массивов/список вопросов, которые я нашел в Интернете, рассматриваемые с различными столбцами/элементами, в то время как я не мог получить этот набор элементов для работы , В итоге единственным решением, которое сработало, было:
array = array[np.lexsort((array[:,-9], array[:,-8], array[:,-7], array[:,-6], array[:,-5], array[:,-4], array[:,-3], array[:,-2], array[:,-1]))]
Это не только очень уродливое, но и не очень гибкое. Любая попытка заменить эту команду циклом или переменной не удалась.
Любые предложения были бы очень оценены!
ЭТО - правильный способ сделать это. Ухабистая версия 'sorted (LoL, key = lambda l: l [:: - 1])'. благодаря – dawg