Come verificare se una lista è vuota in Python

di Lorenzo Neri
29 visualizzazioni

Se ti stai chiedendo come si può verificare se una lista è vuota in Python sei nel posto giusto: in questo articolo scopriamo come risolvere questo problema grazie al concetto della booleanicità implicita.

Per certi versi Python è contro intuitivo.

Ti può essere capitato diverse volte di avere a che fare con una lista: è vuota, ma vuoi verificarlo.

Per esempio:

lista = []

Siamo d’accordo entrambi che questa lista non abbia alcun elemento al suo interno: perciò è vuota.

Purtroppo, ciò che verrebbe spontaneo fare, sarebbe un controllo di questo tipo:

>>> lista == None
>>> False

Il concetto di “None” in Python non funziona troppo bene in questo caso, anzi: la lista non è prettamente “None”, ma è semplicemente vuota.

Per questo, dicevo all’inizio che Python è alquanto contro intuitivo.

Allora come possiamo verificare se una lista è vuota in Python?

Tramite l’operatore “not”.

Booleanicità Implicita

Finalmente eccoci a questi due brutti termini in tecnichese che ho scritto ad inizio articolo.

È giunta l’ora di spiegarti cosa intendo con “Python è contro intuitivo per certi aspetti”.

La booleanicità implicita per cui ti invito caldamente ad approfondire sulla guida ufficiale di Python, consiste in termini stretti se “stiamo chiedendo a Python la verità”: in questo caso la lista è vuota, ma non “None”.

Di per sé infatti, tramite l’operatore “not” stiamo chiedendo a Python:

“Caro Python, la lista non è piena: dico bene?”

E la risposta, che ci permette di verificare se la lista è davvero vuota in Python è qua sotto:

lista = []

if not lista:
   print("la lista è vuota")

Oppure se stai operando direttamente da terminale:

>>> lista = []
>>> not lista
>>> True

Questo modo di operatore lo riconosco: è parecchio “Pythonico”.

Cosa c’è di “Pythonico” nel verificare se una lista è vuota.

Per “Pythonico” intendo proprio questo concetto non del tutto immediato di “chiedere la verità a Python”, cosa differente dal “chiedere un’eguaglianza a Python”.

Torniamo all’esempio che abbiamo fatto prima, anzi: al primo.

>>> lista = []
>>> lista == None
>>> False

Se ragioni sul senso stretto della frase “chiedere un’eguaglianza a Python” è quello che effettivamente stiamo provando a fare: ma la lista abbiamo appurato che non è None, è vuota.

Invece, “chiedere la verità a Python” nel nostro caso si intende quello che è racchiuso dalla soluzione che abbiamo visto assieme prima.

Tramite:

>>> lista = []
>>> not lista
>>> True

Stai chiedendo a tutti gli effetti a Python: “Python, ma quindi il contrario di ‘lista’ quindi ‘non lista’ è qualcosa di pieno?”.

E la risposta è ovviamente “True”: perché il contrario di una lista vuota, è una lista piena.

“Negando” la lista, la stai comparando a una lista piena.

Assurdo vero?

Potrebbero interessarti

Lascia un commento

Questo sito potrebbe fare uso di cookie e siccome l'UE mi obbliga a fartelo presente, eccoti il classico banner dove puoi decidere come gestirli. Accetta Leggi di più