el objeto nonetype no es un subíndice de Python

No se puede acceder a los objetos de Python con el valor None mediante indexaciòn . Esto se debe a que los valores Ninguno no contienen datos con n√∫meros de ìndice.

Si intenta acceder a un elemento desde un valor Ninguno mediante la indexaciòn, encontrará un " TypeError: " NoneType " el objeto no se puede suscribir " error.

En esta guìa, hablamos sobre lo que significa este error y desglosamos còmo funciona. Analizamos un ejemplo de este error para que pueda descubrir còmo resolverlo en su programa.

TypeError: " NoneType " el objeto no es subìndice

Los objetos subìndice son valores a los que se accede mediante la indexaciòn. " Indexaciòn " es otra palabra para decir " subìndice & rdquo ;, que se refiere a trabajar con partes individuales de una colecciòn más grande.

Por ejemplo, listas , tuplas y los diccionarios son todos objetos subcriptables. Puede recuperar elementos de estos objetos mediante la indexaciòn. Los valores None no se pueden suscribir porque no forman parte de ning√∫n conjunto de valores más grande.

El " TypeError: " NoneType " el objeto no se puede suscribir " El error es com√∫n si asigna el resultado de un método de lista integrado como sort () , reverse () o append () a una variable. Esto se debe a que estos métodos de lista cambian una lista existente en el lugar. Como resultado, devuelven un valor Ninguno.

Un escenario de ejemplo

Cree una aplicaciòn que rastree la informaciòn sobre los puntajes de las pruebas de un estudiante en la escuela. Comenzamos por definir una lista de puntajes de exámenes de los estudiantes:

Nuestra lista de calificaciones de exámenes de los estudiantes contiene dos diccionarios . A continuaciòn, le pedimos al usuario que inserte informaciòn que debe agregarse a los " puntajes " list:

El 81% de los participantes afirmaron que se sentìan más seguros acerca de sus perspectivas laborales después de asistir a un bootcamp. Asigne a un bootcamp hoy mismo.

El graduado promedio de un bootcamp pasò menos de seis meses en la transiciòn profesional, desde comenzar un bootcamp hasta encontrar su primer trabajo.

Realizamos un seguimiento de tres datos. : el nombre de un estudiante, su puntaje de prueba y su puntaje de prueba representado como una calificaciòn en letra.

A continuaciòn, agregamos esta informaciòn a nuestra lista de " puntajes ". Hacemos esto creando un diccionario que agregaremos a la lista usando método append () :

Este còdigo agrega un nuevo registro a la lista de " puntuaciones & rdquo ;. El resultado del método append () se asigna a la variable " new_scores & rdquo ;.

Finalmente, imprima el √∫ltimo elemento de nuestra lista de " new_scores " para que puede ver si funcionò:

El valor -1 representa el √∫ltimo elemento de la lista. Ejecute nuestro còdigo y vea qué sucede:

Nuestro còdigo devuelve un error.

La soluciòn

Nuestro còdigo le pide a nuestro usuario que inserte informaciòn sobre un estudiante. Nuestro còdigo luego agrega un registro a los " new_scores " lista. El problema es cuando intentamos acceder a un elemento de los " new_scores " list.

Nuestro còdigo no funciona porque append () devuelve None. Esto significa que estamos asignando un valor Ninguno a " new_scores & rdquo ;. append () devuelve Ninguno porque agrega un elemento a una lista existente. El método append () no crea una nueva lista.

Para solucionar este error, debemos eliminar la declaraciòn de los " new_scores " variable y deje scores.append () en su propia lìnea:

Ahora solo hacemos referencia a las " puntuaciones " variable. Veamos qué pasa cuando ejecutamos nuestro programa:

Nuestro còdigo se ejecuta correctamente. Primero, se le pide a nuestro usuario que inserte informaciòn sobre los puntajes de las pruebas de un estudiante. Luego, agregamos esa informaciòn a las " puntuaciones " diccionario. Nuestro còdigo imprime el nuevo valor del diccionario que se ha agregado a nuestra lista para que sepamos que nuestro còdigo ha funcionado.

Conclusiòn

El error " TypeError: " NoneType " no es subscriptable " se genera cuando intenta acceder a elementos de un valor None usando la indexaciòn .

Esto es com√∫n si usa un método incorporado para manipular una lista y asigna el resultado de ese método a una variable. Los métodos incorporados devuelven un valor Ninguno que no se puede manipular usando la sintaxis de indexaciòn.

Ahora está listo para resolver este error com√∫n de Python como un experto.