У меня есть список списков. Каждый подсписчик имеет длину от 1 до 100. Каждый подсписщик содержит идентификатор частицы в разное время в наборе данных. Я хотел бы сформировать списки всех идентификаторов частиц в данный момент времени. Для этого я мог бы использовать что-то вроде:Подрезки для резки различной длины
list = [[1,2,3,4,5],[2,6,7,8],[1,3,6,7,8]]
list2 = [item[0] for item in list]
list2 будет содержать первые элементы каждого подсписка в списке. Я хотел бы сделать эту операцию не только для первого элемента, но и для каждого элемента от 1 до 100. Моя проблема заключается в том, что для каждого подсписок не существует элемента 100 (или 66 или 77 или любого другого).
Есть ли способ создания списков списков, где каждый подсписщик является списком всех идентификаторов частиц в данный момент времени.
Я думал о попытке использовать массивы numpy для решения этой проблемы, как если бы списки были одинаковой длины, это было бы тривиально. Я попытался добавить -1 в конец каждого списка, чтобы сделать их одинаковой длины, а затем маскировать отрицательные числа, но пока это не сработало. Я буду использовать список идентификаторов в данный момент времени, чтобы нарезать другой отдельный массив:
pos = pos[satIDs]
Вы хотите сделать это с помощью одной линии для цикла? или любой из циклов будет делать? – Navid777
Любая петля будет делать, однако набор данных достаточно велик, поэтому скорость может быть проблемой. – Jack
"маскировка отрицательных чисел, но это пока не сработало для меня" - Как это не сработало для вас? – Divakar