Python str para dictar

Funciones y métodos de Python

En Python, los objetos iterables se indexados mediante números . Cuando intenta acceder a un objeto iterable utilizando un valor de cadena, se devolverá un error. Este error tendrá un aspecto parecido a & ldquo; TypeError: los índices de cadena deben ser números enteros & rdquo ;.

En esta guía, vamos a discutir qué significa este error y por qué se genera. Revisaremos un fragmento de código de ejemplo con este error y una solución para ayudarlo a obtener más contexto sobre cómo puede resolver este tipo de error.

¡Comencemos!


El problema: typeerror: los índices de cadena deben ser enteros

Tenemos un TypeError en nuestras manos. Eso significa que estamos intentando realizar una operación en un valor cuyo tipo no es compatible con esa operación. Veamos nuestro mensaje de error:

 typeerror: los índices de cadena deben ser enteros 

Como muchos mensajes de error de Python, este nos dice exactamente qué error hemos cometido. Este error indica que estamos intentando acceder a un valor de un iterable utilizando un índice de string en lugar de un índice de números enteros.

Los iterables, como cadenas y diccionarios , se indexan a partir del número 0. Considere la siguiente lista:

 keyboard = ["Apex Pro", "Apple Magic Keyboard"]; 

Este es una lista de cadenas. Para acceder al primer elemento de esta lista, necesitamos hacer referencia a él por su valor de índice:

 print (keyboard [0]) 

Esto devolverá un nombre de teclado: & ldquo; Apex Pro & rdquo ;. No pudimos acceder a este elemento de la lista usando una cadena. De lo contrario, se devolvería un error.

El 81% de los participantes afirmaron que se sentían más seguros acerca de sus perspectivas laborales después de asistir a un campamento de entrenamiento. 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.

Creemos un diccionario llamado & ldquo; steel_series & rdquo; que contiene información en un teclado:

 steel_series = {"nombre": "Apex Pro", "fabricante" : "SteelSeries", "oled_display": True} 

Vamos a iterar sobre todos los valores en este diccionario e imprimirlos en la consola.

 para k en steel_series: print ("Nombre:" + k ["nombre"]) print ("Fabricante:" + k ["fabricante "]) print (" Pantalla OLED: "+ str (k [" oled_display "])) 

Este código usa un for loop para recorrer todos los elementos de nuestro & ldquo; teclado & rdquo; objeto. Ahora, intentemos ejecutar nuestro código y ver qué sucede:

 Traceback (más reciente llamar al último): archivo "main.py", línea 8, en & lt; módulo & gt; print ("Nombre:" + k ["nombre"]) TypeError: los índices de cadena deben ser enteros 

Hay un error, como esperábamos. Este error se debe a que estamos intentando acceder a los valores de nuestro diccionario utilizando índices de cadena en lugar de números enteros.





La solución

El problema en nuestro código es que estamos iterando sobre cada clave en el diccionario & ldquo; steel_series & rdquo ;.

El valor de & ldquo; k & rdquo; es siempre una clave en el diccionario. No es un registro en nuestro diccionario. Intentemos imprimir & ldquo; k & rdquo; en nuestro diccionario:

 para k en steel_series: print (k) 

Nuestro código devuelve:

No podemos usar "k" para acceder a los valores de nuestro diccionario. K ["nombre"] es igual al valor de "nombre" dentro de "k", que es "nombre". Esto no tiene sentido a Python. No puedes acceder a un valor en una cadena usando otra cadena.

Para resolver este problema, debemos hacer referencia a nuestro diccionario en lugar de & ldquo; k & rdquo ;. Podemos acceder a los elementos de nuestro diccionario mediante una cadena. Esto se debe a que las claves del diccionario pueden ser cadenas.

No necesitamos usar un bucle for para imprimir cada valor:

 print (" Nombre: "+ steel_series [" nombre "]) print (" Fabricante: "+ steel_series [" fabricante "]) print (" Pantalla OLED: "+ str (steel_series ["oled_display"])) 

Ejecutemos nuestro nuevo código:

 Nombre: Apex Pro Fabricante: SteelSeries Pantalla OLED: Verdadero 

Nuestro código imprime correctamente cada valor de nuestra lista. Esto se debe a que ya no intentamos acceder a nuestro diccionario utilizando el valor de cadena en un iterador (& ldquo; k & rdquo;).






Conclusión

Los índices de cadena deben ser números enteros. Esto significa que cuando accedes a un objeto iterable como una cadena, debes hacerlo usando un valor numérico. Si está accediendo a elementos de un diccionario, asegúrese de que está accediendo al diccionario en sí y no a una clave en el diccionario.

Ahora está listo para resolver el Python typeerror: ¡los índices de cadena deben ser errores enteros como un profesional!





Python str para dictar: StackOverflow Questions

Tutorials