#python #list #sublist #reorganize
#python #Список #подсписок #реорганизовать
Вопрос:
Вот список, который я хочу разбить:
List A = [[[[0, 1], [2, 3]], [[0, 2], [1, 3]], [[0, 3], [1, 2]]], [[[0, 2], [1, 3]], [[0, 3], [1, 2]], [[0, 2], [1, 3]]]]
Список A имеет 2 подсписка, каждый из которых содержит 3 пары координат. Мне интересно, мог бы я сохранить порядок этих координат, но перегруппировать пару координат в виде подсписка. Итак, вот желаемый результат:
List B = [[[0, 1], [2, 3]], [[0, 2], [1, 3]], [[0, 3], [1, 2]], [[0, 2], [1, 3]], [[0, 3], [1, 2]], [[0, 2], [1, 3]]]
Спасибо!!
Ответ №1:
Вы можете преобразовать его в массив numpy, изменить его форму, а затем преобразовать обратно.
import numpy as np
A = [[[[0, 1], [2, 3]], [[0, 2], [1, 3]], [[0, 3], [1, 2]]], [[[0, 2], [1, 3]], [[0, 3], [1, 2]], [[0, 2], [1, 3]]]]
npA = np.array(A)
B = npA.reshape(6, 2, 2).tolist()
Или, если вы хотите, чтобы он обобщался на разные размеры входных данных
B = npA.reshape(npA.size // 4, 2, 2).tolist()
Ответ №2:
Что касается вашего конкретного вопроса, мы можем получить B
из A[0] A[1]
>>> A = [[[[0, 1], [2, 3]], [[0, 2], [1, 3]], [[0, 3], [1, 2]]], [[[0, 2], [1, 3]], [[0, 3], [1, 2]], [[0, 2], [1, 3]]]]
>>> B = [[[0, 1], [2, 3]], [[0, 2], [1, 3]], [[0, 3], [1, 2]], [[0, 2], [1, 3]], [[0, 3], [1, 2]], [[0, 2], [1, 3]]]
>>> A[0] A[1]
[[[0, 1], [2, 3]], [[0, 2], [1, 3]], [[0, 3], [1, 2]], [[0, 2], [1, 3]], [[0, 3], [1, 2]], [[0, 2], [1, 3]]]
>>> A[0] A[1] == B
True
Ответ №3:
Для вашего конкретного требования вы можете взять первый элемент списка A и расширить его вторым элементом списка A
B = A[0]
B.extend(A[1])