Le liste in Python vengono utilizzate praticamente ovunque. In questo tutorial esamineremo quattro modi per trovare la lunghezza di una lista Python: usando funzioni integrate, la ricorsione e un ciclo. Conoscere la lunghezza di una lista è spesso necessario per iterare su di essa ed eseguire varie operazioni.
len() è una funzione integrata di Python per ottenere la lunghezza di una lista. Accetta un solo argomento — la lista stessa — e restituisce un numero intero pari alla sua lunghezza. La stessa funzione funziona anche con altri oggetti iterabili, come le stringhe.
Country_list = ["The United States of America", "Cyprus", "Netherlands", "Germany"]
count = len(Country_list)
print("There are", count, "countries")
Output:
There are 4 countries
È possibile determinare la lunghezza di una lista in Python utilizzando un ciclo for. L’idea è attraversare l’intera lista incrementando un contatore di 1 a ogni iterazione. Inseriamo tutto questo in una funzione separata:
def list_length(list):
counter = 0
for i in list:
counter = counter + 1
return counter
Country_list = ["The United States of America", "Cyprus", "Netherlands", "Germany", "Japan"]
count = list_length(Country_list)
print("There are", count, "countries")
Output:
There are 5 countries
La stessa operazione può essere eseguita tramite ricorsione:
def list_length_recursive(list):
if not list:
return 0
return 1 + list_length_recursive(list[1:])
Country_list = ["The United States of America", "Cyprus", "Netherlands","Germany", "Japan", "Poland"]
count = list_length_recursive(Country_list)
print("There are", count, "countries")
Output:
There are 6 countries
Come funziona. La funzione list_length_recursive() riceve una lista come input.
Se la lista è vuota, restituisce 0 — la lunghezza di una lista vuota.
Altrimenti richiama sé stessa in modo ricorsivo con l’argomento list[1:], una slice della lista originale a partire dall’indice 1 (cioè la lista senza l’elemento in posizione 0). Il risultato di tale chiamata viene sommato a 1. A ogni passo ricorsivo il valore restituito aumenta di uno mentre la lista si riduce di un elemento.
La funzione length_hint() si trova nel modulo operator. Questo modulo contiene funzioni analoghe agli operatori interni di Python: addizione, sottrazione, confronto e così via. length_hint() restituisce la lunghezza di oggetti iterabili come stringhe, tuple, dizionari e liste. Funziona in modo simile a len():
from operator import length_hint
Country_list = ["The United States of America", "Cyprus", "Netherlands","Germany", "Japan", "Poland", "Sweden"]
count = length_hint(Country_list)
print("There are", count, "countries")
Output:
There are 7 countries
Nota che length_hint() deve essere importata prima dell’uso.
In questa guida abbiamo illustrato quattro modi per determinare la lunghezza di una lista in Python. A parità di condizioni, il metodo più efficiente è len(). Gli altri approcci sono principalmente giustificati quando si implementano classi personalizzate simili a una lista.