Quindi stavi lavorando con un elenco o un array in Python e probabilmente hai provato a tagliarlo. Ma invece del risultato previsto, viene visualizzato un errore che dice "elenca l'indice fuori dall'intervallo". Nessun problema, può capitare a chiunque.
Esploriamo cosa significa questo errore, la sua causa e come rimuoverlo senza ulteriori indugi.
Cosa significa l'errore "list index out of range" in Python?
Quando Python genera un errore "indice elenco fuori intervallo", significa che hai provato a tagliare l'elenco oltre il suo ultimo indice.
Python identifica ogni elemento in un elenco in base al suo indice. E l'indice di una lista parte da zero. Ad esempio, quando hai un elenco con cinque elementi, il suo primo elemento è sull'indice zero, mentre l'ultimo è sul quarto indice.
Ad esempio, in un elenco di cinque linguaggi di programmazione:
Lingue = ["Python", "Go", "PHP", "C", "Perl"]
L'indicizzazione per l'elenco di cui sopra è compresa tra zero e quattro. Quindi provare a tagliarlo per stampare il quinto elemento come mostrato di seguito dà un errore:
stampa (lingue[5])
Produzione:
IndexError: elenca l'indice fuori dall'intervallo
Nell'esempio sopra, Python prova a cercare il quinto indice nell'elenco e, quando non riesce a trovarlo, genera l'errore di indice dell'elenco. Questo perché il primo elemento (Python) è sull'indice zero, mentre l'ultimo (Perl) è sull'indice quattro.
Questa è la base dell'errore "list index out of range". Come detto, Python lo lancia ogni volta che provi a tagliare un elenco oltre il suo ultimo indice.
Come rimuovere l'errore "list index out of range" in Python
Quindi come puoi rimuovere questo errore? È facile.
Oltre alla sezione precedente sopra, puoi stampare gli indici usando a perloop nella comprensione di un elenco:
indexes = [languages.index (i) per i nelle lingue]
stampa (indici)
Produzione:
[0, 1, 2, 3, 4]
L'indice di una lista è la base dello slicing nella programmazione. Quindi, poiché conosci l'indice più alto dell'elenco per l'output sopra (4), puoi decifrare il limite della sezione.
Quindi, per tagliare l'elenco e ottenere l'ultimo elemento:
stampa (lingue[4])
Produzione:
Perl
Ora emette il risultato corretto.
E se volessi scorrere l'elenco usando il suo indice?
Oltre al regolare Python per ciclo, puoi anche usare il concetto di indice per scorrere un elenco. Anche se questo metodo può sembrare arduo, a volte è inevitabile. Ad esempio, è utile se si desidera ordinare un elenco in ordine inverso.
Questo metodo funziona impostando un indice iniziale e incrementandolo o decrementandolo di uno fino all'ultimo indice disponibile.
Per stampare gli articoli con un numero di indice crescente (dal primo all'ultimo articolo), ad esempio:
indice = 0 # Indice iniziale
per i in Lingue:
stampa (Lingue[indice])
indice +=1
Produzione:
Pitone
andare
PHP
C
Perl
Ma cosa succede se imposti l'indice iniziale su uno anziché su zero? Dare un'occhiata:
indice = 1 # Indice iniziale
per i in Lingue:
stampa (Lingue[indice])
indice +=1
Produzione:
andare
PHP
C
Perl
IndexError: elenca l'indice fuori dall'intervallo
Nell'esempio sopra, l'indicizzazione inizia dal secondo elemento (indice uno, andare). Quindi, durante l'incremento, il ciclo non si interrompe finché non completa il conteggio per i cinque elementi. Ciò costringe l'indice ad aumentare di uno fino all'ultimo elemento.
Quindi, la fetta raggiunge un quinto indice che non è disponibile. Quindi genera un errore di indice. Significa che l'indice aumenta nel seguente schema per ogni articolo:
1=1, 1+1=2, 1+2=3, 1+3=4, 1+4=5
Invece del modello corretto, che è:
0=0, 0+1=1, 1+1=2, 1+2=3, 1+3=4
Come puoi vedere, il valore più alto dell'indice sopra è quattro, il che è corretto poiché il ciclo inizia ad incrementare l'indicizzazione da zero.
Pertanto, l'impostazione dell'indice iniziale su zero come hai fatto nel primo esempio in questa sezione rimuove l'errore "elenco indice fuori intervallo":
indice = 0 # Indice iniziale
per i in Lingue:
stampa (Lingue[indice])
indice +=1 #Aumenta l'indice di uno per ogni iterazione
Per applicare questo concetto per l'output degli elementi in ordine inverso, dovrai sottrarre uno dalla lunghezza dell'array. Quindi questo costringe l'indice a iniziare da quattro e contare alla rovescia fino al primo indice, zero.
Questo è utile se non sei sicuro del valore della lunghezza dell'elenco proveniente da una fonte, ad esempio un database.
Ecco un esempio:
indice = (len (Lingue)-1)
per i in Lingue:
stampa (Lingue[indice])
indice -=1 #Diminuisci l'indice di uno per ogni iterazione
Produzione:
Perl
C
PHP
andare
Pitone
Ma non sottrarre uno dalla lunghezza dell'elenco genera l'errore "elenco fuori dall'intervallo indice":
indice = (len (Lingue)-1)
per i in Lingue:
stampa (Lingue[indice])
indice -=1
Produzione:
IndexError: elenca l'indice fuori dall'intervallo
Il codice precedente genera un errore di indice perché la lunghezza dell'elenco è cinque e tenta di avviare l'indicizzazione da cinque a zero, mentre l'indice più alto è quattro. Quindi significa che l'elenco non ha un quinto indice (sesto elemento).
Ottieni elenchi di gestione delle creatività in Python
Gli errori di Python sono di facile comprensione e generalmente leggibili. Invariabilmente, questo li rende rintracciabili in misura ragionevole.
Come hai appreso, rimuovere l'errore dell'indice dell'elenco fuori dall'intervallo è piuttosto semplice. Se affronti questo errore nei tuoi programmi futuri, indipendentemente dalla complessità dell'elenco, puoi applicare i concetti spiegati in questo post per risolvere il problema.
Sentiti libero di essere creativo con elenchi complessi. Potresti anche voler imparare come ordinare gli elenchi in Python nel tuo tempo libero per avere un'idea migliore di tutto.
Gli elenchi con più tipi di dati possono sfuggire di mano rapidamente. Ecco come ordinarli con Python.
Leggi Avanti
- Programmazione
- Pitone
- Programmazione
- Suggerimenti per la codifica
Idowu è appassionato di qualsiasi tecnologia e produttività intelligenti. Nel tempo libero, gioca con la programmazione e passa alla scacchiera quando è annoiato, ma ama anche staccare dalla routine di tanto in tanto. La sua passione per mostrare alle persone la via della tecnologia moderna lo motiva a scrivere di più.
Iscriviti alla nostra Newsletter
Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!
Clicca qui per iscriverti