gli indici della lista python devono essere interi o fette non str

Gli indici delle stringhe devono essere interi o sezioni, non stringhe? Cosa significa questo errore? è un TypeError, che ci dice che stiamo cercando di eseguire un’operazione su un valore il cui tipo non è compatibile con l’operazione. Qual è la soluzione?

In questa guida, risponderemo a tutte queste domande. Discuteremo cosa causa questo errore in Python e perché viene generato. Esamineremo uno scenario di esempio per aiutarti a capire come risolverlo. Senza ulteriori indugi, cominciamo!

Il problema: typeerror: gli indici delle liste devono essere interi o slice, non str

Houston, abbiamo un TypeError:

Questo errore viene generato quando provi ad accedere a un valore all’interno di un elenco utilizzando un valore stringa.

Elementi in le liste sono indicizzate usando i numeri. Considera il seguente elenco:

1 2345
S tring

Per accedere ai valori in questa stringa, possiamo usare lo slicing dell’indice. Questo è quando chiami una stringa seguita da un valore di indice per recuperare il carattere in quella posizione:

Questo codice restituisce: S. Il nostro codice recupera il carattere nella posizione di indice 0 nel nostro elenco.

L’81% dei partecipanti ha dichiarato di sentirsi più sicuro delle proprie prospettive di lavoro nel settore tecnico dopo aver partecipato a un bootcamp. Fatti abbinare a un bootcamp oggi.

Il laureato medio del bootcamp ha trascorso meno di sei mesi nella transizione di carriera, dall’avvio di un bootcamp alla ricerca del primo lavoro.

Se provi ad accedere a un bootcamp. list utilizzando una lettera, come "S", si verificherà un errore.

Uno scenario di esempio

L’errore "typeerror: gli indici della lista devono essere interi o slice, non str" viene comunemente sollevata quando si tenta di accedere a un elemento in un elenco di oggetti JSON come se fosse un elenco.

Considera il seguente frammento di codice:

Questo frammento di codice trova l’età di un particolare studente in una classe. Innanzitutto, abbiamo dichiarato un elenco di studenti. Questo elenco memorizza ogni studente come oggetto JSON.

Successivamente, chiediamo all’utente di inserire il nome dello studente di cui desidera trovare l’età. Il nostro programma itera quindi su ogni studente nell’elenco utilizzando un for loop per trovare lo studente il cui nome corrisponde a quello che abbiamo specificato.

Se viene trovato quel particolare nome, l’età dello studente viene stampato sulla console. Altrimenti non succede nulla.

Proviamo a eseguire il nostro codice:

Oh no. è un TypeError!

La soluzione

Puoi risolvere l’errore "typeerror: gli indici delle liste devono essere interi o slice, non str" assicurandoti di accedere agli elementi di una lista usando numeri di indice, non stringhe.

Il problema nel nostro codice è che stiamo cercando di accedere a "nome" nel nostro elenco di studenti:

Non corrisponde a nessun valore perché il nostro elenco contiene più oggetti JSON. Per risolvere questo problema, utilizzeremo un’istruzione range() per scorrere il nostro elenco di studenti. Quindi, accederemo a ogni studente tramite il suo numero di indice:

Per iniziare, abbiamo usato un’istruzione range. Questo ci permetterà di scorrere su ogni studente nella nostra lista. Abbiamo sostituito ogni istanza di "studenti["key_name"]" con "studenti[s]["key_name"]". Questo ci consente di accedere a ciascun valore nell’elenco.

Eseguiamo il nostro codice e vediamo cosa succede:

Il nostro codice ha trovato con successo il età di Lisa Simpson.

Accediamo a ogni valore nell’elenco "studenti" utilizzando il suo numero di indice invece di una stringa. Problema risolto!



Conclusione

L’errore "typeerror: gli indici della lista devono essere interi o slices, not str" viene generato quando tenti di accedere a un elenco utilizzando valori stringa anziché un numero intero. Per risolvere questo problema, assicurati di accedere a un elenco utilizzando un numero di indice.

A scenario comune in cui viene generato questo errore è quando si itera su un elenco e si confrontano oggetti nell’elenco. Per risolvere questo errore, abbiamo utilizzato uno statemen range() t in modo da poter accedere a ciascun valore in "studenti" individualmente.

Ora sei pronto per risolvere questo errore come un esperto di Python!

"Il Karma di carriera è entrato nella mia vita quando ne avevo più bisogno e mi ha aiutato rapidamente ad abbinarlo un bootcamp. Due mesi dopo la laurea, ho trovato il lavoro dei miei sogni in linea con i miei valori e obiettivi nella vita!"

Venus, Software Engineer presso Rockbot

p>