Python: Controllare se una lista è vuota o no – ( Aggiornato 2020 )

In questo articolo, discuteremo diversi modi per controllare se una lista è vuota o no. Vedremo anche come controllare se una lista di liste è vuota o no usando il ciclo for, la comprensione delle liste, e la funzione all().
Tabella dei contenuti

  • Controllare se una lista è vuota usando l’operatore ‘not’ in python
  • Controllare se una lista è vuota usando la funzione len()
  • Python: Controllare se una lista è vuota confrontandola con una lista vuota
  • Controllare se una lista è vuota usando __len__()
  • Controllare se una lista è vuota usando numpy
  • Controllare se una lista di liste è vuota
    • Controllare se una lista di liste è vuoto usando for loop
    • Controllare se una lista di liste è vuota usando List comprehension

Controllare se una lista è vuota usando l’operatore ‘not’ in python

In python, un oggetto sequenza può essere implicitamente convertibile in bool. Se la sequenza è vuota, allora valuta False, altrimenti valuta True. Quindi, possiamo applicare un’istruzione if ad un oggetto sequenza per controllare se è vuoto o no.

Applicando l’istruzione if all’oggetto lista, possiamo controllare se è vuoto o no. Per esempio,

# Create an empty listlist_of_num = # Empty list object will evaluate to Falseif not list_of_num: print('List is empty')else: print('List is not empty')

Output:

List is empty

Come funziona?

Quando l’istruzione ‘if’ viene applicata ad una lista, valuta False se la lista è vuota, altrimenti valuta True. Se applichiamo l’operatore ‘not’ insieme a ‘if statement’ all’oggetto lista, esso valuta True se la lista è vuota, altrimenti restituisce False.

Controlla se la lista è vuota usando la funzione len()

Python fornisce una funzione built-in len(),

len(sequence)

Accetta una sequenza come una lista, tupla o set, ecc, e ritorna il numero di elementi in quella sequenza, cioè la dimensione della sequenza, dimensione della sequenza.
Possiamo controllare la dimensione della lista passando l’oggetto lista alla funzione len(). Una volta che abbiamo la dimensione della lista, possiamo confermare se una lista è vuota controllando se la sua dimensione è 0. Per esempio,

# Create an empty listlist_of_num = # Check if list's size is 0if len(list_of_num) == 0: print('List is empty')else: print('List is not empty')

Output:

List is empty

Python: Controllare se la lista è vuota confrontandola con una lista vuota

In python, le parentesi quadre vuote indicano la lista vuota. Quindi, possiamo controllare se il nostro oggetto lista è vuoto o no semplicemente confrontandolo con i.e.

# Create an empty listlist_of_num = # Check if list object points to literal if list_of_num == : print('List is empty')else: print('List is not empty')

Output:

List is empty

Questo non è l’approccio più veloce, perché prima verrà creato un oggetto lista vuoto e poi verrà fatto il confronto.

Controllare se la lista è vuota usando __len__()

La classe List ha un metodo speciale sovraccaricato,

list.__len__()

Ritorna il numero di elementi nella lista. Possiamo controllare la dimensione di una lista chiamando la funzione __len__() sull’oggetto lista. Una volta che abbiamo la dimensione della lista, possiamo confermare se una lista è vuota controllando se la sua dimensione è 0. Per esempio,

# Create an empty listlist_of_num = # Check if list's size is 0if list_of_num.__len__() == 0: print('List is empty')else: print('List is not empty')

Output:

List is empty

Controlla se una lista è vuota usando numpy

Converte una lista Python in un array numpy e poi controlla la dimensione dell’array numpy usando l’attributo size. Se la dimensione dell’array numpy è zeo allora significa che la lista è vuota. Per esempio,

import numpy as np# Create an empty listlist_of_num = arr = np.array(list_of_num)if arr.size == 0: print('List is empty')else: print('List is not empty')

Output:

List is empty

Controlla se una lista di liste è vuota

Ci possono essere scenari in cui abbiamo una lista di liste e vogliamo scoprire se tutte le sotto-liste sono vuote. Ci sono diversi modi per farlo. Discutiamoli uno per uno.

Controllare se una lista di liste è vuota usando il ciclo for

Abbiamo creato una funzione che accetta una lista di liste e controlla se tutte le sotto-liste della lista data sono vuote o no. Usiamo questa funzione per controllare se tutte le liste in una lista sono vuote o no.

def check_if_empty(list_of_lists): for elem in list_of_lists: if elem: return False return True# List of listlist_of_lists = , , , ]if check_if_empty(list_of_lists): print('List of Lists is empty')else: print('List of Lists is not empty')

Output:

List of Lists is empty

Questa funzione check_if_empty() accetta una lista di liste, poi itera su tutte le sotto-liste della lista principale usando il ciclo for, e per ogni sotto-lista, controlla se è vuota o no usando la ‘condizione if’ & ‘not operator’. Se una qualsiasi delle sotto-liste non è vuota, restituisce False, mentre se tutte le sotto-liste sono vuote, restituisce True.

Controlla se una lista di liste è vuota usando List comprehension

A differenza della soluzione precedente, qui controlleremo se tutte le sotto-liste di una data lista sono vuote o meno in un unico modo usando List Comprehension e la funzione all().

def check_if_empty_2(list_of_lists): return all()# List of listlist_of_lists = , , , ]if check_if_empty_2(list_of_lists): print('List of Lists is empty')else: print('List of Lists is not empty')

Output:

List of Lists is empty

La comprensione delle liste restituisce una lista di booleani, dove ogni voce di questa lista di booleani rappresenta la sotto-lista dalla lista principale. Se un sottoelenco è vuoto, allora la voce corrispondente in questo elenco bool sarà True, altrimenti False.
Poi abbiamo passato questo elenco bool alla funzione all() per controllare se tutti gli elementi in questo elenco bool sono True o no. Se tutti gli elementi della lista bool sono True, allora significa che tutte le sotto-liste della lista principale sono vuote.

Sommario

Abbiamo discusso diversi modi per controllare se una lista è vuota o no. Poi abbiamo anche esaminato le tecniche per controllare se una lista contiene tutte le liste vuote o no.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *