Переупорядочить массив в Python на основе столбца - PullRequest
0 голосов
/ 27 апреля 2020

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

a = [[ 8, 7, 6, 5, 9],
     [1, 2, 1, 6, 4],
     [4, 2, 5, 4, 2]]`

Я хочу изменить порядок этого массива на основе второй строки следующим образом: b = [2, 6, 1, 1, 4]

Итак, я хотите, чтобы результат стал таким:

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

Как я могу решить эту проблему в Python?

Ответы [ 2 ]

0 голосов
/ 27 апреля 2020

В этом ответе я делаю следующие два предположения:

  • Все подсписки имеют длину 5 элементов
  • Желаемая логика c - это перемещение 2-й и 4-й элементы должны быть 1-м и 2-м соответственно

Если оба из приведенных выше предположений верны, вы можете использовать понимание списка во вложенном списке и создать список для укажите, как списки должны быть переупорядочены.

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

new_ord = [1, 3, 0, 2, 4]

b = [[l[i] for i in new_ord] for l in a]
print(b) #prints: [[7, 5, 8, 6, 9], [2, 6, 1, 1, 4], [2, 4, 4, 5, 2]]
0 голосов
/ 27 апреля 2020
a = [[ 8, 7, 6, 5, 9],
    [1, 2, 1, 6, 4],
    [4, 2, 5, 4, 2]]
a[1] = [2, 6, 1, 1, 4]

Попробуйте это.

...