Invertire una lista in Python
-
Usa
range()
per invertire una lista in Python -
Invertire una lista con il cicli
while
in Python - Invertire una lista utilizzando l’operatore Slice in Python
-
Usa
reversed()
per invertire una lista in Python
Questo tutorial mostrerà diversi modi per invertire una lista in Python.
L’inversione di lista è uno dei problemi di programmazione di avviamento più comuni che si verificano quando si impara a programmare. In Python, esistono diversi modi semplici per invertire una lista.
Usa range()
per invertire una lista in Python
range()
è una funzione incorporata di Python che restituisce una lista di un intervallo di numeri.
Sintassi di range()
range(start, stop, step)
Questa funzione ha 3 argomenti; l’argomento principale richiesto è il secondo argomento stop
, un numero che indica dove vuoi fermarti. Ci sono 2 argomenti opzionali, start
specifica dove dovresti iniziare a contare e step
specifica l’incremento della sequenza.
Prendi nota che stop
avrà un offset di 1 poiché il conteggio inizia a 0
. Per creare una lista che si ferma a 5 usando range()
, il valore di stop dovrebbe essere 6.
numbers = list(range(6))
print(numbers)
Produzione:
[0, 1, 2, 3, 4, 5]
Per invertire questo lista, devi specificare gli argomenti start
e step
.
Lo start
è impostato su 5, mentre step
è -1
poiché vogliamo decrementare l’intervallo di 1 ogni volta. Anche l’argomento stop
dovrebbe essere impostato a -1
, poiché vogliamo fermarci a 0
(poiché stop
ha un offset di 1).
numbers = list(range(5, -1, -1))
print(numbers)
Produzione:
[5, 4, 3, 2, 1, 0]
Invertire una lista con il cicli while
in Python
Dichiara una lista di 10 numeri interi casuali che vogliamo creare una nuova lista in ordine inverso.
numbers = [66, 78, 2, 45, 97, 17, 34, 105, 44, 52]
Usa un bucle while sull’lista per visualizzarlo al contrario. Per prima cosa, ottieni la dimensione dell’lista e deducilo di 1 per puntare all’ultimo elemento dell’lista. Dichiariamo anche una lista vuoto per memorizzare la nuova versione invertita dell’lista precedente.
idx = len(numbers) - 1
newList = []
Ora usa il bucle while per iterare e memorizzare ogni elemento nella nuova lista con ogni iterazione che decrementa idx
finché non raggiunge 0
.
while idx >= 0:
newList.append(numbers[idx])
idx = idx - 1
print(newList)
Produzione:
[52, 44, 105, 34, 17, 97, 45, 2, 78, 66]
Invertire una lista utilizzando l’operatore Slice in Python
Se preferisci non scorrere l’lista, usa l’operatore slice
per diminuire l’indice dell’array di 1.
Simile a range()
, l’operatore slice accetta tre argomenti: start
, stop
e step
.
Lascia i primi due argomenti vuoti in modo che coprirà l’intero array e imposta il valore step
su -1
in modo che inizi con alla fine dell’array e lo decrementi di 1 ogni volta.
newList = numbers[::-1]
print(newList)
Produzione:
[52, 44, 105, 34, 17, 97, 45, 2, 78, 66]
Usa reversed()
per invertire una lista in Python
Un altro modo semplice per invertire una lista in Python è usare la funzione incorporata reversed()
. Questa funzione accetta un argomento della lista e restituisce un iteratore della versione invertita della stessa lista.
Utilizzando lo stesso esempio di numbers
sopra, invertire l’lista utilizzando questa funzione. Non dimenticare di racchiudere la funzione con list()
per memorizzare effettivamente il valore di ritorno di reversed()
in una lista.
newList = list(reversed(numbers))
print(newList)
In alternativa, puoi anche usare un cicli for
per scorrere l’lista invertito e memorizzarlo direttamente in newList
.
newList = [num for num in reversed(numbers)]
print(newList)
L’output di entrambe le soluzioni sarà lo stesso.
[52, 44, 105, 34, 17, 97, 45, 2, 78, 66]
In sintesi, Python fornisce un modo semplice per invertire una lista utilizzando la funzione reversed()
. Puoi anche invertire manualmente una lista facendolo scorrere in un cicli for
o while
. Python ha anche un metodo semplice per invertire una lista in una singola linea se ti senti a tuo agio nell’usare l’operatore slice.
Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.
LinkedInArticolo correlato - Python List
- Converti un dizionario in una lista in Python
- Rimuovi i duplicati dall'lista in Python
- Rimuovi tutte le occorrenze di un elemento da una lista in Python
- Ottieni la media di una lista in Python
- Qual è la differenza tra i metodi di elencazione, aggiungere ed estendere
- Come convertire una lista in stringa in Python