Introduzione

Quando si lavora con gli elenchi in Python, a volte potrebbe essere necessario invertire gli elementi di una lista. Invertire una lista significa che il primo elemento della lista diventa l'ultimo, il secondo diventa penultimo, l'ultimo elemento diventa il primo e così via.

In Python, esistono diversi modi per invertire una lista, a seconda di ciò che stai cercando di fare.

Metodo reverse()

reverse() è un metodo con tipo di dati lista che inverte gli elementi della lista sul posto. Questo metodo modifica la lista originale anziché crearne uno nuovo.

La sintassi del metodo reverse() è la seguente:

list.reverse()

reverse()  non accetta argomenti.

Ecco un esempio:

capitals = ['Oslo', 'Skopje', 'Riga', 'Madrid']

capitals.reverse()

print('Reversed list:', capitals)
Reversed list: ['Madrid', 'Riga', 'Skopje', 'Oslo']

Funzione reversed()

reversed() è una funzione incorporata di Python che restituisce un iteratore invertito di un dato oggetto iterabile. La lista originale non viene modificata.

Se vuoi solo scorrere gli elementi della lista in ordine inverso, potresti usare la funzione reversed(), poiché è più veloce.

La sintassi della funzione reversed() è la seguente:

reversed(seq) 

Dov'è è la lista seq che vuoi ripristinare.

Di seguito è riportato un esempio che utilizza reversed() per scorrere gli elementi della lista in ordine inverso:

numbers = [1, 2, 3, 4]

for i in reversed(numbers) :
    print(i)
4
3
2
1

Se vuoi convertire l'iteratore invertito in una lista, usa il costruttore list():

numbers = [1, 2, 3, 4]

print(list(reversed(numbers)))
[4, 3, 2, 1]

Invertire una lista utilizzando Slicing

La notazione delle sezioni è una funzionalità incorporata di Python che consente di estrarre parti di un tipo di dati sequenziale. Puoi usare la notazione [::-1] al contrario di una lista:

numbers = [1, 2, 3, 4]

print(numbers[::-1])

Il risultato del taglio di una lista è una nuova lista contenente gli elementi estratti. La lista originale non viene modificato.

[4, 3, 2, 1]

Conclusione

Per invertire le posizioni di una lista Python, utilizzare il metodo reverse(). Se hai solo bisogno di creare un iteratore invertito, usa la funzione reversed().