Перемещать массив массивов по позиции в Python - PullRequest
0 голосов
/ 28 мая 2020

У меня есть этот массив массивов:

A = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

И я хочу преобразовать его в такой массив (имеющий массив с 1-м элементами, следующий массив со 2-м элементами, ...):

AUX = [[1, 4, 7], [2, 5, 8], [3, 6, 9]]

Я пробовал с

for i in A:
   for j in i:
      #code

Но с этим я просто получаю последовательность исходного массива [1, 2, 3, 4, 5, 6, 7, 8, 9]

Ответы [ 3 ]

2 голосов
/ 28 мая 2020

Вы можете использовать zip для транспонирования массива:

result = [list(x) for x in zip(*A)]

Если вы используете Numpy, вы можете просто использовать функцию транспонирования:

result = np.transpose(np.array(A))
result = np.array(A).T  # equivalent
1 голос
/ 28 мая 2020

Я пробовал Дружественный способ для начинающих

A = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
AUX = []
n = 0
while n != len(A):
    AUX.append([i[n] for i in A])
    n = n + 1
1 голос
/ 28 мая 2020

Вы должны использовать функцию zip следующим образом:

AUX = [list(x) for x in zip(*A)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...