Se vuoi imparare come creare una lista vuota in Python in modo efficiente, allora questo articolo è per te.
Apprenderete:
- Come creare una lista vuota usando le parentesi quadre
.
- Come creare una lista vuota usando
list()
. - I loro casi di utilizzo.
- Come sono efficienti (uno è più veloce dell’altro!). Useremo il modulo
timeit
per confrontarli.
Cominciamo! ✨
🔹 Usare le parentesi quadre
Puoi creare una lista vuota con una coppia vuota di parentesi quadre, come questa:
💡 Consiglio: Assegniamo la lista vuota ad una variabile per usarla in seguito nel nostro programma.
Per esempio:
num =
L’elenco vuoto avrà lunghezza 0
, come potete vedere proprio qui:
>>> num = >>> len(num)0
Le liste vuote sono valori falsi, il che significa che valutano False
in un contesto booleano:
>>> num = >>> bool(num)False
Aggiungere elementi ad una lista vuota
Puoi aggiungere elementi ad una lista vuota usando i metodi append()
e insert()
:
-
append()
aggiunge l’elemento alla fine della lista. -
insert()
aggiunge l’elemento al particolare indice della lista che hai scelto.
Siccome le liste possono essere valori veri o falsi a seconda che siano vuote o meno quando vengono valutate, potete usarle nei condizionali come questo:
if num:print("This list is not empty")else:print("This list is empty")
L’output di questo codice è:
This list is empty
Perché la lista era vuota, quindi valuta False.
In generale:
- Se la lista non è vuota, valuta
True
, quindi viene eseguita la clausola if. - Se la lista è vuota, valuta
False
, quindi viene eseguita la clausola else.
Esempio:
Nell’esempio seguente, creiamo una lista vuota e la assegniamo alla variabile num
. Poi, usando un ciclo for, aggiungiamo una sequenza di elementi (interi) alla lista inizialmente vuota:
>>> num = >>> for i in range(3, 15, 2):num.append(i)
Controlliamo il valore della variabile per vedere se gli elementi sono stati aggiunti con successo e confermare che la lista non è più vuota:
>>> num
💡 Suggerimento: Usiamo comunemente append()
per aggiungere il primo elemento ad una lista vuota, ma potete anche aggiungere questo elemento chiamando il metodo insert()
con indice 0
:
>>> num = >>> num.insert(0, 1.5) # add the float 1.5 at index 0>>> num
🔸 Usando il costruttore list()
In alternativa, puoi creare una lista vuota con il costruttore di tipo list()
, che crea un nuovo oggetto lista.
Secondo la documentazione Python:
Se non viene dato alcun argomento, il costruttore crea una nuova lista vuota,
💡 Tip: Questo crea un nuovo oggetto lista in memoria e poiché non abbiamo passato nessun argomento a list()
, verrà creata una lista vuota.
Per esempio:
num = list()
Questa lista vuota avrà lunghezza 0
, come potete vedere proprio qui:
>>> num = list()>>> len(num)0
E si tratta di un valore falso quando è vuoto (si valuta a False
in un contesto booleano):
>>> num = list()>>> bool(num)False
Esempio:
Questa è una lista completamente funzionale, quindi possiamo aggiungere elementi ad essa:
>>> num = list()>>> for i in range(3, 15, 2):num.append(i)
E il risultato sarà una lista non vuota, come potete vedere proprio qui:
>>> num
🔹 Casi d’uso
- Utilizziamo tipicamente
list()
per creare liste da iterabili esistenti come stringhe, dizionari o tuple. - Si vedranno comunemente parentesi quadre
usate per creare liste vuote in Python perché questa sintassi è più concisa e veloce.
🔸 Efficienza
Aspettate! Vi ho appena detto che è più veloce di
list()
…
Ma quanto più veloce?
Verifichiamo la loro efficienza temporale usando il modulo timeit.
Per usare questo modulo nel vostro programma Python, dovete importarlo:
>>> import timeit
In particolare, useremo la funzione timeit di questo modulo, che potete chiamare con questa sintassi:
💡 Consiglio: Il codice viene ripetuto più volte per ridurre le differenze di tempo che possono derivare da fattori esterni come altri processi che potrebbero essere in esecuzione in quel particolare momento. Questo rende i risultati più affidabili ai fini del confronto.
🚦 Ai vostri posti… preparatevi… pronti! Ecco il codice e l’output:
Prima, importiamo il modulo.
>>> import timeit
Poi, iniziamo a testare ogni sintassi.
Testing :
>>> timeit.timeit('', number=10**4)0.0008467000000109692
Testing list():
>>> timeit.timeit('list()', number=10**4)0.002867799999989984
💡 Consiglio: Notate che il codice che volete cronometrare deve essere circondato da apici singoli ''
o doppi apici ""
. Il tempo restituito dalla funzione timeit
è espresso in secondi.
Confronta questi risultati:
-
0.0008467000000109692
-
list()
0.002867799999989984
Si può vedere che è molto più veloce di
list()
. C’è stata una differenza di circa 0.002
secondi in questo test:
>>> 0.002867799999989984 - 0.00084670000001096920.0020210999999790147
Sono sicuro che vi starete chiedendo questo adesso: Perché list()
è meno efficiente di se fanno esattamente la stessa cosa?
list()
è più lento perché richiede di cercare il nome della funzione, chiamarla e poi creare l’oggetto lista in memoria. Al contrario, è come una “scorciatoia” che non richiede così tanti passaggi intermedi per creare la lista in memoria.
Questa differenza di tempo non influenzerà molto le prestazioni del vostro programma, ma è bello sapere quale dei due è più efficiente e come funzionano dietro le quinte.
🔹 In sintesi
Puoi creare una lista vuota usando una coppia vuota di parentesi quadre o il costruttore del tipo
list()
, una funzione integrata che crea una lista vuota quando non vengono passati argomenti.
Le parentesi quadre sono comunemente usate in Python per creare liste vuote perché è più veloce e conciso.
Spero davvero che il mio articolo vi sia piaciuto e vi sia stato utile. Ora puoi creare liste vuote nei tuoi progetti Python. Guarda i miei corsi online. Seguimi su Twitter. ⭐️
Se vuoi approfondire le liste, potresti leggere:
- Python List Append – Come aggiungere un elemento ad una matrice, spiegato con esempi
- Il metodo Python Sort List Array – Ascendente e Discendente spiegato con esempi
- Python List Append VS Python List Extend – La differenza spiegata con esempi del metodo Array