У меня есть список с элементами различного размера (некоторые даже пустые), заданный как:
a1 = [array([[83, 84]]), array([[21, 24], [32, 53],[54, 56]]), array([[21,24],[32, 37],[45, 46]]), [], []]
В этом списке значения либо в парах (в массивах), либопросто пусто.Все, что я хочу сделать, это отсортировать все пары в порядке убывания на основе их различий и сохранить их местоположение / индекс в исходном списке (т.е. a1
).Например, мой желаемый вывод:
a1_sorted = [[32,53],[32,37],[21,24],[21,24],[54,56],[45,46],[83,84],[],[]]
a1_index = [[1,1],[2,1],[1,0],[2,0],[1,2],[2,2],[0,0],[3,0],[4,0]]
Поскольку пустые элементы не имеют 2D-местоположения, ниже, указывающий только первый индекс элемента, также являетсяподходящая альтернатива:
a1_index = [1,2,1,2,1,2,0,3,4]
Мой первоначальный подход заключался в простой итерации по элементам списка, но обработка пустых элементов и переменных размеров измерений замедлила эту работу.Есть мысли об оптимальных решениях?