Guía para encontrar la posición de una cadena por medio de str.index() en Python

| Última modificación: 3 de diciembre de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

¡Hola, Keepcoders! En el día de hoy queremos enseñarles acerca de una función muy usada en python. Se trata del str.index(). Veamos en qué consiste, cómo funciona y sus características y diferencias con otros métodos similares.

str.index()  en python

¿Qué es str.index() en Python?

El método str.index() es una forma de buscar una subcadena dentro de una cadena principal en python. Si encuentra la subcadena, devuelve el índice de la primera aparición de esa subcadena. En caso contrario, lanza una excepción ValueError, a diferencia de otros métodos como find() que simplemente devuelven -1 cuando no encuentran el valor.

La sintaxis básica de str.index() es la siguiente:

string.index(substring, start=0, end=len(string))
  • substring: La subcadena que buscas dentro de la cadena principal.
  • start: (Opcional) El índice de inicio desde donde comienza la búsqueda. Por defecto es 0, lo que significa que se buscará desde el inicio.
  • end: (Opcional) El índice de fin donde se termina la búsqueda. Si no se especifica, se buscará hasta el final de la cadena.

¿Cómo utilizar str.index()?

Para entender mejor cómo funciona str.index(), veamos un ejemplo súper simple: supongamos que tienes la siguiente cadena:

txt = "Hola, bienvenido a Python"

Y quieres encontrar la posición de la palabra “bienvenido”. El código sería:

txt = "Hola, bienvenido a Python"
position = txt.index("bienvenido")
print(position)

Salida:

6

🔴 ¿Quieres Aprender a Programar con Python? 🔴

Descubre el Full Stack Jr. Bootcamp - Aprende a Programar desde Cero de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp Aprende a Programar desde Cero por una semana

El método index() devuelve 6 porque la palabra “bienvenido” comienza en el índice 6 de la cadena.

str.index() con los parámetros start y end

También puedes especificar un rango en el que deseas realizar la búsqueda. Esto es útil cuando solo te interesa buscar dentro de una sección específica de la cadena.

Por ejemplo, si solo quieres buscar la palabra “a” entre las posiciones 10 y 20 de la siguiente cadena:

txt = "Hola, bienvenido a Python"
position = txt.index("a", 10, 20)
print(position)

La salida sería algo como:

16

En este caso, la búsqueda se realiza solo entre el índice 10 y el 20, y la primera aparición de “a” se encuentra en el índice 16.

str.index() y otros métodos de búsqueda

Es común confundirse entre los métodos index() y find(), ya que ambos sirven para buscar subcadenas dentro de una cadena. Sin embargo, tienen una diferencia y es qué:

  • str.index(): Lanza una excepción ValueError si la subcadena no se encuentra.
  • str.find(): En lugar de lanzar una excepción, devuelve -1 si la subcadena no se encuentra.

Por ejemplo, si intentamos buscar una subcadena que no existe:

txt = "Hola, bienvenido a Python"
print(txt.index("Java"))

La salida va a ser:

ValueError: substring not found

En cambio, si usamos find():

txt = "Hola, bienvenido a Python"
print(txt.find("Java"))

Salida:

-1

¿Cuándo usar str.index() y cuándo usar str.find()?

  • Usa str.index() cuando estés seguro de que la subcadena existe y no te importe que el programa lance una excepción si no la encuentra.
  • Usa str.find() si prefieres manejar los casos donde la subcadena no existe de manera más controlada, sin que se interrumpa el flujo del programa.

str.rfind() y str.index()

Si bien str.index() busca la primera aparición de la subcadena desde el principio de la cadena, hay un método similar llamado str.rfind() que busca la última aparición de la subcadena:

txt = "Hola, bienvenido a Python. Bienvenido nuevamente"
position = txt.rfind("Bienvenido")
print(position)

El resultado será:

27

En este caso, rfind() devuelve la última aparición de la palabra “Bienvenido”, que está en el índice 27.

Si quieres seguir aprendiendo sobre programación, no dudes en unirte a nuestro programa bootcamp sobre programación desde cero, en el que podrás acceder a los mejores profesores que te guiarán en tu proceso formativo y te ayudarán a conseguir el éxito profesional en unos cuantos meses. Capacítate para ser programador junior y consigue el trabajo de tus sueños. ¡No dejes pasar la oportunidad de cambiar tu futuro!

Ramón Maldonado

Full Stack Developer y Responsable de Formación base en KeepCoding.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Aprende a Programar desde Cero

Full Stack Jr. Bootcamp

Apúntate y consigue uno de los perfiles más demandados con Python en solo 4 meses.