Dato un po 'di matrice, ho bisogno di specchiare tutte le righe nella matrice. Per esempioMirroring di righe in matrice con loop/ricorsione?
[[2, 1],
[4, 3]]
sarebbe diventato
[[1, 2],
[3, 4]]
sono riuscito a farlo per la (2 x 2) CAUSA. Ma Ho problemi di mirroring o meno così:
[[1, 2, 3, 4],
[1, 2, 3, 4]]
Questo deve diventare
[[4, 3, 2, 1],
[4, 3, 2, 1]]
io voglio fare questo con i loop/ricorsione. Se uso la ricorsione, probabilmente avrei come passo base che gli elementi più interni vengono scambiati per primi, e da qui in poi renderemmo la matrice più grande includendo anche gli elementi esterni e scambiandoli anche loro. Tuttavia, ho problemi con la fase di ricorsione. Dopo aver scambiato gli elementi più interni, voglio includere il prossimo alla maggior parte degli elementi interni della matrice, e scambiarli anch'essi, e poi continuare così fino a raggiungere gli elementi esterni. Come può essere implementato nel codice? Questo è quello che ho fatto finora:
matrix = [[1, 2, 3, 4],
[1, 2, 3, 4]]
def mirror(matrix):
# This corresponds to the basic step. The two inner most elements get swapped.
if len(matrix) == 2:
for i in range(len(matrix)):
for j in range(len(matrix)):
# Store one element in a temporal variable
temp = matrix[i][j]
matrix[i][j] = matrix[i][len(matrix) - 1]
matrix[i][len(matrix)-1] = temp
return matrix
else:
# Recursion step
for i in range(len(matrix)):
for j in range(len(matrix)):
return (matrix + mirror(matrix[(len(matrix) // 2) - 1 : len(matrix)]))
Il passaggio di ricorsione è sbagliato, credo. Ho provato ad usare l'operatore di slice, ma non sono sicuro di come dovrebbe essere fatto correttamente. Qualsiasi aiuto con questo problema sarebbe apprezzato.
ha a essere ricorsiva? –
Beh, ho studiato solo loop, ricorsione, liste, algoritmi di ricerca e funzioni con Python. Pertanto, sulla base delle mie conoscenze limitate, ritengo che la ricorsione sia il modo più semplice/più efficace per affrontare questo problema. – Kamil
'[sub [:: - 1] per sub in arr]' è la soluzione più semplice, vuoi cambiare l'array originale? –