Come verificare se un elenco è vuoto in Python (valori di verità Pythonic)

Scopri i modi più Pythonici per verificare se una lista è vuota in Python. Confronta i controlli booleani impliciti con i confronti di lunghezza.

Prova questa soluzione nell'editor

Panoramica

Nello sviluppo Python, avrai spesso bisogno di verificare se un elenco contiene elementi prima di tentare di leggerne, modificarne o elaborarne il contenuto. L'accesso agli elementi di un elenco vuoto utilizzando parentesi (ad esempio, `my_list[0]`) solleva un `IndexError`, che interrompe l'esecuzione del programma. Pertanto, l'implementazione di modelli di controllo puliti e difensivi è essenziale per la stabilità dell'applicazione.

Il modo più Pythonico per verificare se una lista è vuota è usare il suo valore booleano implicito (veridicità). In Python, le raccolte vuote (inclusi elenchi, dizionari, tuple e insiemi) restituiscono "False" in un contesto booleano, mentre le raccolte popolate restituiscono "True". Scrivere "if not my_list:" è diretto, altamente leggibile e conforme alle linee guida PEP 8.

Sebbene funzioni anche il confronto della lunghezza dell'elenco con zero (ad esempio, `if len(my_list) == 0:`) o il confronto diretto dell'elenco con un valore letterale di elenco vuoto (ad esempio, `if my_list == []:`), questi approcci sono generalmente scoraggiati perché sono meno concisi e possono essere leggermente più lenti. L'adozione del test del valore di verità integrato in Python rende il tuo codice più pulito ed efficiente.

Codice e output di esecuzione

Questo script mostra diversi metodi per verificare se un elenco è vuoto in Python.

empty_list_check.py
Prova nell'editor
empty_list = []
full_list = [10, 20, 30]

# Method 1: The Pythonic Way (Implicit boolean check)
if not empty_list:
    print("empty_list is indeed empty!")

if full_list:
    print("full_list has elements inside!")

# Method 2: Length comparison (Less Pythonic, but functional)
if len(empty_list) == 0:
    print("Length of empty_list is 0.")
Uscita terminale
empty_list is indeed empty!
full_list has elements inside!
Length of empty_list is 0.

Implementazione passo dopo passo

  • Scrivi if not my_list: per verificare se la lista è vuota (approccio più pythonic).
  • Scrivi if mia_lista: per verificare se la lista contiene uno o più elementi.
  • Evitare di utilizzare len(my_list) == 0 o my_list == [] per verificare il vuoto.

Domande frequenti

Perché "if not my_list" è preferito rispetto a "if len(my_list) == 0"?

È più leggibile, idiomatico e leggermente più veloce perché evita di invocare la funzione len() di ricerca e confronto di numeri interi.

Questo controllo funziona per altre raccolte come dizionari o tuple?

Sì, la stessa identica regola di veridicità si applica ai dict vuoti ({}), alle tuple vuote (()), agli insiemi vuoti (set()) e alle stringhe vuote ("").

Argomenti correlati

Risorse Python consigliate

Espandi le tue conoscenze con tutorial interattivi, foglietti illustrativi e confronti di codici correlati.