перемещение строк в 2D массивах - PullRequest
0 голосов
/ 16 сентября 2018

У меня в настоящее время есть двумерный массив, подобный этому

array = [ [a1, a2, a3, a4],
          [b1, b2, b3, b4],
          [c1, c2, c3, c4],
          [d1, d2, d3, d4],
        ]

, который я хочу сделать, это изменить массив следующим образом:

array = [ [b1, b2, b3, b4],
          [c1, c2, c3, c4],
          [d1, d2, d3, d4],
          [a1, a2, a3, a4],
        ]

Я бы предпочел метод, в котором я могусохраните строку 'a' в переменной и удалите ее из массива 2d, а затем добавьте ее обратно в конец.спасибо за любую помощь.

Ответы [ 2 ]

0 голосов
/ 16 сентября 2018
def alter(array,removeRow,addRow):
    temp = array[removeRow]
    del array[removeRow]
    array.insert(addRow,temp)
0 голосов
/ 16 сентября 2018

Вы можете написать функцию, которая перемещает строку из позиции в другую. Как следующее:

def move(matrix, src, dst):
    tmp = matrix[src]
    del matrix[src]
    matrix.insert(dst, tmp)

Затем вам нужно вызвать его с помощью src (исходный индекс) и dst (целевой индекс) с правильными значениями.

Например:

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

move(matrix, 1, 0)

# Now matrix is:
# [
#    [ 4, 5, 6 ],
#    [ 1, 2, 3 ],
#    [ 7, 8, 9 ],
# ]
...