Introduzione
Le liste sono una delle quattro strutture dati più comunemente usate fornite da Python. La sua funzionalità, estensibilità e facilità d’uso la rendono utile per implementare vari tipi di funzionalità.
Le liste Python hanno alcune caratteristiche interessanti:
- Mutabilità – significa che può cambiare, il che ci permette di aggiungere e cancellare facilmente voci da essa. Questa è la principale differenza tra le liste Python e le tuple
- Iterabilità – il che significa che possiamo iterare attraverso di essa (passare attraverso tutti gli elementi della lista in ordine)
L’attributo principale su cui ci concentreremo è l’Iterabilità. Una parte importante quando si ha a che fare con un oggetto iterabile, in questo caso una lista, è controllare se c’è qualcosa da iterare. Se non gestito correttamente, questo può portare a molti errori indesiderati.
Python fornisce vari modi per controllare se la nostra lista è vuota o meno, alcuni impliciti e altri espliciti, e in questo articolo, vedremo come controllare se una lista Python è vuota.
- Utilizzando la funzione
len()
- Utilizzando
len()
con un operatore di confronto - Confronto con lista vuota
- Pep-8 Stile consigliato (più popolare e consigliato)
- Utilizzando la funzione
bool()
Utilizzando la funzione len()
Una delle tecniche è quella di utilizzare la funzione len()
per controllare se la nostra lista è vuota o no:
py_list = """Here len() returns 0, which is implicitly converted to false"""if len(py_list):print('The list is not empty')else:print('T list is empty')
Output
List is empty
Quando len(py_list)
viene eseguito produce zero, che viene poi implicitamente lanciato al valore booleano di False
. Così in caso di lista vuota il programma sarà reindirizzato al blocco else.
Anche se questo metodo sembra semplice, non è così intuitivo per i principianti.
Usando len() con l’operatore di confronto
Questa tecnica è simile a quella sopra ma è più esplicita e facile da capire. Ecco perché coloro che sono nuovi a python o alla codifica stessa di solito la considerano più intuitiva:
if len(py_list) == 0:print('List is empty')else:print('List not empty')
Nel codice sopra, len(py_list) == 0
sarà vero se la lista è vuota e sarà reindirizzato al blocco else. Questo permette anche di impostare altri valori, piuttosto che fare affidamento sul fatto che 0
venga convertito come False
. Tutti gli altri valori positivi sono convertiti in True
.
Confronto con una lista vuota
Anche questo metodo è molto semplice e funziona bene per i principianti in quanto prevede il confronto con una lista vuota:
if py_list == :print('List is empty')else:print('List is not empty')
Anche qui, stiamo usando l’operazione di confronto per confrontare una lista con un’altra – una vuota, e se entrambe sono vuote il blocco if
verrà eseguito.
Pep-8 Stile consigliato
#PEP-8 recommended styleif py_list:print('List is not empty')if not py_list:print('List empty')
Per questo, diamo un’occhiata al test del valore di verità. La documentazione ufficiale afferma che:
Qui ci sono la maggior parte degli oggetti incorporati considerati falsi:
- costanti definite false: Nessuno e Falso.
- zero di qualsiasi tipo numerico: 0, 0.0, 0j, Decimal(0), Fraction(0, 1)
- sequenze e collezioni vuote: ”, (), , {}, set(), range(0)
Come una lista vuota è in effetti solo una collezione vuota, sarà convertita in un valore booleano di False
. Pertanto, se py_list
è vuoto, sarà convertito in False
.
La seconda dichiarazione è abbastanza simile, tranne che not
invertirà la condizione di falso in una vera. Questo approccio è molto simile all’approccio if(len(list))
.
Questo è l’approccio preferito perché è la soluzione più pulita e più breve che ci sia.
Utilizzando la funzione bool()
Possiamo anche usare la funzione bool()
per verificare che una lista sia vuota:
#As truth value testing says braces denotes falseif bool(py_list):print('List is not empty')else:print('List is empty')
Questo è fondamentalmente un test del valore di verità implementato manualmente. Quindi se la lista non è vuota la funzione restituirà True
e il blocco if verrà eseguito.
Questo approccio è meno comune in quanto possiamo ottenere i risultati desiderati anche senza usare bool()
, ma non è una brutta cosa sapere come funziona Python sotto il cofano.
Conclusione
Questo articolo era tutto su come controllare se la nostra lista python è vuota o no. Abbiamo iniziato esplorando diverse tecniche e infine esaminando alcuni parametri che possiamo usare per dare il nostro giudizio su quale tecnica può funzionare per noi.
Non posso dire che questa sia la fine, poiché nuovi aggiornamenti di Python possono dare origine a nuovi e migliori stili di codifica. Quindi è meglio continuare ad esplorare e continuare ad imparare.
0 commenti