Python len(): una guida per principianti al conteggio degli elementi in Python
Scopri come usare la funzione Python len() per trovare rapidamente la dimensione di stringhe, liste, dizionari e altre strutture dati. Esplora esempi pratici ed errori comuni da evitare quando usi len() nel tuo codice.
La funzione len() è uno dei primi strumenti su cui gli sviluppatori Python fanno affidamento per ispezionare i dati. È quasi certo che tu abbia già incontrato len() se stai seguendo il nostro corso Introduction to Python for Developers o il percorso di competenze Python Programming Fundamentals.
In questo articolo, ti mostrerò come funziona len() in Python sui tipi di dato più comuni e a cosa fare attenzione quando qualcosa va storto.
Cosa fa la funzione Python len()?
Puoi usare la funzione built-in len() di Python ogni volta che ti serve verificare quanti elementi contiene qualcosa. Penso, ad esempio, a contare il numero di elementi in una lista o il numero di caratteri in una stringa. Puoi usarla anche per contare le chiavi in un dizionario. Le possibilità sono tante.
Stampa 5, dato che la parola "Josef" (con una "f") è composta da cinque caratteri.
Verificare il numero di elementi in una lista
Se vuoi scoprire quanti elementi contiene una lista, usa questo:
numbers =[10,20,30,40,50]print(len(numbers))Offerto da
Qui vedrai come output 5.
Ottenere la dimensione di una tupla
Le tuple, proprio come le liste, raggruppano elementi ma sono immutabili, cioè non possono essere modificate dopo la creazione. len() funziona anche qui:
dimensions =(1920,1080)print(len(dimensions))Offerto da
Questo produce 2, dato che la tupla contiene due elementi.
Contare le chiavi in un dizionario
I dizionari Python sono basati su coppie chiave-valore. Quando usi len() su un dizionario, vengono contate solo le chiavi:
person ={"name":"Alice","age":30,"city":"Paris"}print(len(person))Offerto da
Quindi ottieni 3 (una per ogni chiave).
Verificare gli elementi unici in un set
I set sono utili quando vuoi memorizzare solo elementi unici. len() te lo dirà:
colors ={"red","green","blue","red"}print(len(colors))Offerto da
Questo restituisce 3, poiché "red" appare due volte ma viene contato una sola volta.
Come funziona len() dietro le quinte
Potresti chiederti, come ho fatto io, come len() determini effettivamente la dimensione.
Sotto il cofano, quando chiami len() su un oggetto, Python cerca il metodo __len__ di quell’oggetto. I tipi built-in come liste, stringhe e dizionari hanno tutti questo metodo.
Sapere questo ci dice che, se creiamo una tua classe e vogliamo che len() funzioni con essa, dobbiamo definire noi stessi un metodo __len__:
classBox:def__init__(self, items):
self.items = items
def__len__(self):returnlen(self.items)
my_box = Box(["apple","banana","orange"])print(len(my_box))Offerto da
Qui len() restituisce 3, perché la scatola contiene tre elementi. Proprio come con liste e stringhe, len() si adatta purché l’oggetto fornisca un metodo __len__.
Cosa succede quando len() non funziona?
Ovviamente, non tutto in Python ha una lunghezza. Se provi a usare len() su qualcosa che non lo supporta (te lo mostrerò tra un attimo con un tipo di dato int) Python te lo segnalerà con un TypeError. È un classico in cui si incappa, soprattutto quando si lavora con tipi di dato misti. Per esempio:
TypeError:object of type'int' has no len()Offerto da
Ogni volta che lo vedi, ricontrolla che l’oggetto che stai misurando sia davvero un contenitore o una sequenza (stringa, lista o dizionario) e non un singolo valore come un intero o un float.
Alcuni utili casi d’uso di len()
Non proviamo a forzare gli esempi: rendiamoli più simili a situazioni reali di programmazione.
Iterare con range
Quando hai bisogno di iterare su una lista usando gli indici, len() ti aiuta a impostare l’intervallo corretto per il ciclo:
fruits =["apple","banana","cherry"]for i inrange(len(fruits)):print(f"Index {i}: {fruits[i]}")Offerto da
Questo stampa ogni frutto insieme al suo indice, dandoti sia ordine che contesto.
Index 0: apple
Index 1: banana
Index 2: cherryOfferto da
Verificare contenitori vuoti
Spesso vorrai sapere se un contenitore—come una lista o un dizionario—è vuoto prima di procedere:
cart =[]iflen(cart)==0:print("Your shopping cart is empty.")Offerto da
Questo schema ti aiuta a evitare errori o elaborazioni inutili quando non c’è nulla su cui lavorare.
Troncare stringhe troppo lunghe
Se gestisci input utente o etichette da mostrare, potresti voler limitare la lunghezza delle stringhe. len() ti aiuta a far rispettare questi limiti:
username ="superlongusername"iflen(username)>10:
username = username[:10]print(username)Offerto da
Qui, qualsiasi username più lungo di 10 caratteri viene accorciato.
Errori comuni con len()
len() può trarti in inganno, anche se hai già un po’ di esperienza con Python:
Provare a usare len() su interi o float: i numeri non sono collezioni, quindi non hanno una lunghezza.
Dimenticare che len() conta gli elementi, non i valori: in un dizionario, len conta le chiavi—anche se più chiavi puntano allo stesso valore.
Dare per scontato che len() funzioni su tutto: le classi personalizzate hanno bisogno di un metodo __len__; altrimenti len() non saprà cosa fare.
Cerca di ricordare queste regole per risparmiare tempo nel debug.
Gestione degli errori con len()
Dato che len() può generare un TypeError se usata male, è saggio preparare il codice a questa eventualità, soprattutto quando si lavora con dati imprevedibili. Un blocco try-except è un modo semplice per gestire questi errori con eleganza:
data =123try:print(len(data))except TypeError:print("Object has no length.")Offerto da
Invece di bloccarsi, il programma ora stampa un messaggio amichevole. Il nostro corso Object-Oriented Programming in Python è un’ottima risorsa per diventare bravi in questo genere di cose.
Usare len() con classi personalizzate
Torniamo alle classi personalizzate. Una classe personalizzata è qualsiasi classe che definisci tu stesso usando la keyword class—ad esempio quando modelli qualcosa di specifico per il tuo programma, come una Team, una Box o una Library. In precedenza, hai visto che len() funziona sui tipi built-in come liste e dizionari perché implementano un metodo speciale chiamato __len__(). Lo stesso vale per le tue classi. Se vuoi che len() funzioni su di esse, devi definire tu stesso __len__().
Non voglio appesantirti con un dettaglio tecnico. Penso valga la pena menzionarlo perché è importante quando costruisci contenitori di dati personalizzati che dovrebbero comportarsi come le collezioni native di Python. Supportando len(), i tuoi oggetti possono interagire in modo più naturale con il resto dell’ecosistema Python, incluse altre funzioni e librerie.
Ecco un rapido riepilogo:
classTeam:def__init__(self, players):
self.players = players
def__len__(self):returnlen(self.players)
my_team = Team(["Alice","Bob","Cathy"])print(len(my_team))Offerto da
Di nuovo, len() restituisce 3, che è la risposta giusta dato che questo è il numero di giocatori nel tuo team.
Conclusione
La prossima volta che devi contare, misurare o verificare la dimensione di qualcosa in Python, ricorda che len() è un’ottima opzione.
Ma ora che siamo arrivati alla fine, voglio menzionare un’altra cosa importante. Ci siamo concentrati su una funzione, ma in Python quasi sempre esistono diversi modi per ottenere lo stesso risultato. Abbiamo un articolo che mostra persino molti metodi diversi per trovare la lunghezza di una lista, di cui la funzione len() è solo una delle opzioni: Python List Size: 8 Different Methods for Finding the Length of a List in Python.
Continua a praticare nuovi metodi. È un modo sicuro per diventare un programmatore più forte. E ricorda di iscriverti al nostro percorso di competenze Python Programming, che ti insegnerà a ottimizzare il codice, scrivere funzioni e test, e molto altro.
Autore
Josef Waples
Sono uno scrittore e editor di data science, con contributi a articoli di ricerca su riviste scientifiche. Sono particolarmente interessato ad algebra lineare, statistica, R e affini. Inoltre, gioco anche parecchio a scacchi!
Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
La funzione
len()è uno dei primi strumenti su cui gli sviluppatori Python fanno affidamento per ispezionare i dati. È quasi certo che tu abbia già incontratolen()se stai seguendo il nostro corso Introduction to Python for Developers o il percorso di competenze Python Programming Fundamentals.In questo articolo, ti mostrerò come funziona
len()in Python sui tipi di dato più comuni e a cosa fare attenzione quando qualcosa va storto.Cosa fa la funzione Python len()?
Puoi usare la funzione built-in
len()di Python ogni volta che ti serve verificare quanti elementi contiene qualcosa. Penso, ad esempio, a contare il numero di elementi in una lista o il numero di caratteri in una stringa. Puoi usarla anche per contare le chiavi in un dizionario. Le possibilità sono tante.Ecco come usarla nella forma più basilare:
Metti semplicemente ciò che vuoi misurare (come le cose elencate sopra) al posto di
object.Usare len() con i tipi di dato comuni di Python
Ho elencato alcuni casi d’uso comuni sopra, ma erano un po’ astratti. Vediamo esempi pratici per rendere più chiaro il valore di
len().Contare i caratteri in una stringa
Supponiamo che tu voglia conoscere la lunghezza esatta di un testo, inclusi tutti gli spazi e i segni di punteggiatura:
Stampa
5, dato che la parola"Josef"(con una "f") è composta da cinque caratteri.Verificare il numero di elementi in una lista
Se vuoi scoprire quanti elementi contiene una lista, usa questo:
Qui vedrai come output
5.Ottenere la dimensione di una tupla
Le tuple, proprio come le liste, raggruppano elementi ma sono immutabili, cioè non possono essere modificate dopo la creazione.
len()funziona anche qui:Questo produce
2, dato che la tupla contiene due elementi.Contare le chiavi in un dizionario
I dizionari Python sono basati su coppie chiave-valore. Quando usi
len()su un dizionario, vengono contate solo le chiavi:Quindi ottieni
3(una per ogni chiave).Verificare gli elementi unici in un set
I set sono utili quando vuoi memorizzare solo elementi unici.
len()te lo dirà:Questo restituisce
3, poiché"red"appare due volte ma viene contato una sola volta.Come funziona len() dietro le quinte
Potresti chiederti, come ho fatto io, come
len()determini effettivamente la dimensione.Sotto il cofano, quando chiami
len()su un oggetto, Python cerca il metodo__len__di quell’oggetto. I tipi built-in come liste, stringhe e dizionari hanno tutti questo metodo.Sapere questo ci dice che, se creiamo una tua classe e vogliamo che
len()funzioni con essa, dobbiamo definire noi stessi un metodo__len__:Qui
len()restituisce3, perché la scatola contiene tre elementi. Proprio come con liste e stringhe,len()si adatta purché l’oggetto fornisca un metodo__len__.Cosa succede quando len() non funziona?
Ovviamente, non tutto in Python ha una lunghezza. Se provi a usare
len()su qualcosa che non lo supporta (te lo mostrerò tra un attimo con un tipo di datoint) Python te lo segnalerà con unTypeError. È un classico in cui si incappa, soprattutto quando si lavora con tipi di dato misti. Per esempio:Questo genera il seguente errore:
Ogni volta che lo vedi, ricontrolla che l’oggetto che stai misurando sia davvero un contenitore o una sequenza (stringa, lista o dizionario) e non un singolo valore come un intero o un float.
Alcuni utili casi d’uso di len()
Non proviamo a forzare gli esempi: rendiamoli più simili a situazioni reali di programmazione.
Iterare con range
Quando hai bisogno di iterare su una lista usando gli indici,
len()ti aiuta a impostare l’intervallo corretto per il ciclo:Questo stampa ogni frutto insieme al suo indice, dandoti sia ordine che contesto.
Verificare contenitori vuoti
Spesso vorrai sapere se un contenitore—come una lista o un dizionario—è vuoto prima di procedere:
Questo schema ti aiuta a evitare errori o elaborazioni inutili quando non c’è nulla su cui lavorare.
Troncare stringhe troppo lunghe
Se gestisci input utente o etichette da mostrare, potresti voler limitare la lunghezza delle stringhe.
len()ti aiuta a far rispettare questi limiti:Qui, qualsiasi username più lungo di 10 caratteri viene accorciato.
Errori comuni con len()
len()può trarti in inganno, anche se hai già un po’ di esperienza con Python:Provare a usare len() su interi o float: i numeri non sono collezioni, quindi non hanno una lunghezza.
Dimenticare che len() conta gli elementi, non i valori: in un dizionario, len conta le chiavi—anche se più chiavi puntano allo stesso valore.
Dare per scontato che len() funzioni su tutto: le classi personalizzate hanno bisogno di un metodo
__len__; altrimentilen()non saprà cosa fare.Cerca di ricordare queste regole per risparmiare tempo nel debug.
Gestione degli errori con len()
Dato che
len()può generare unTypeErrorse usata male, è saggio preparare il codice a questa eventualità, soprattutto quando si lavora con dati imprevedibili. Un blocco try-except è un modo semplice per gestire questi errori con eleganza:Invece di bloccarsi, il programma ora stampa un messaggio amichevole. Il nostro corso Object-Oriented Programming in Python è un’ottima risorsa per diventare bravi in questo genere di cose.
Usare len() con classi personalizzate
Torniamo alle classi personalizzate. Una classe personalizzata è qualsiasi classe che definisci tu stesso usando la keyword
class—ad esempio quando modelli qualcosa di specifico per il tuo programma, come unaTeam, unaBoxo unaLibrary. In precedenza, hai visto chelen()funziona sui tipi built-in come liste e dizionari perché implementano un metodo speciale chiamato__len__(). Lo stesso vale per le tue classi. Se vuoi chelen()funzioni su di esse, devi definire tu stesso__len__().Non voglio appesantirti con un dettaglio tecnico. Penso valga la pena menzionarlo perché è importante quando costruisci contenitori di dati personalizzati che dovrebbero comportarsi come le collezioni native di Python. Supportando
len(), i tuoi oggetti possono interagire in modo più naturale con il resto dell’ecosistema Python, incluse altre funzioni e librerie.Ecco un rapido riepilogo:
Di nuovo,
len()restituisce3, che è la risposta giusta dato che questo è il numero di giocatori nel tuo team.Conclusione
La prossima volta che devi contare, misurare o verificare la dimensione di qualcosa in Python, ricorda che
len()è un’ottima opzione.Ma ora che siamo arrivati alla fine, voglio menzionare un’altra cosa importante. Ci siamo concentrati su una funzione, ma in Python quasi sempre esistono diversi modi per ottenere lo stesso risultato. Abbiamo un articolo che mostra persino molti metodi diversi per trovare la lunghezza di una lista, di cui la funzione
len()è solo una delle opzioni: Python List Size: 8 Different Methods for Finding the Length of a List in Python.Continua a praticare nuovi metodi. È un modo sicuro per diventare un programmatore più forte. E ricorda di iscriverti al nostro percorso di competenze Python Programming, che ti insegnerà a ottimizzare il codice, scrivere funzioni e test, e molto altro.