El método “index()” de Python puede uti­li­zar­se para buscar en una cadena y recuperar el índice de una subcadena Python. Puedes buscar en toda la cadena Python o solo en una parte de ella.

Python string index: sintaxis y fu­n­cio­na­li­dad

La sintaxis del método “index” es muy fácil de explicar. El método puede invocarse con uno, dos o tres pa­rá­me­tros, siendo los dos últimos op­cio­na­les. El primer parámetro es siempre la subcadena, tras la cual puedes revisar la cadena. Los dos pa­rá­me­tros op­cio­na­les son los índices en los que debe iniciarse o detenerse la búsqueda. Puedes uti­li­zar­los si solo buscas la subcadena en una zona de­te­r­mi­na­da de la cadena. El siguiente fragmento de código muestra la sintaxis de este método:

string.index(substring)
string.index(substring, start, end)
Python

En este ejemplo, “string” es una cadena ar­bi­tra­ria y “substring” es la subcadena a buscar. “start” y “end” indican los índices inicial y final de la búsqueda. Si no se es­pe­ci­fi­ca ningún índice final (si solo tienes dos pa­rá­me­tros en total), la búsqueda termina al final de la cadena. El método devuelve el índice de la primera aparición de la subcadena como valor de retorno. Por tanto, si una subcadena aparece más de una vez, todas las apa­ri­cio­nes po­s­te­rio­res a la primera son ignoradas por “index()”. Aquí tienes un ejemplo de cómo funciona el método.

string = "I am a string"
print(string.index("String"))
# output: 12
print(string.index("in"))
# output: 5 (the "a" in "am")
print(string.index("in", 7, len(string) - 1))
# output: 9 (the "ing" in "string")
print(string.index("in", 7))
# output: 9 (the "ing" in "string")
print(string.index("Python"))
# Exception-error message: ValueError
Python

Como puedes ver en el ejemplo anterior, la segunda llamada a “index()” solo devuelve el índice de la “a” en “am”. Las demás apa­ri­cio­nes de “am” se ignoran. En la última llamada a “index()”, puedes ver que el método devuelve una excepción “Va­lueE­rror” si no se incluye la subcadena. Esta excepción también aparece si se in­tro­du­cen índices negativos o si el índice inicial es mayor que el índice final. Si se produce alguno de estos casos en tu programa, puedes manipular la excepción en co­n­se­cue­n­cia.

Consejo

El tra­ta­mie­n­to de cadenas es una tarea muy común en la pro­gra­ma­ción en Python. Por eso es im­po­r­ta­n­te que las cadenas se guarden y muestren en un formato adecuado. En nuestro artículo sobre el formato de las cadenas en Python exa­mi­na­mos más de­te­ni­da­me­n­te cómo puedes adaptar el formato de las cadenas a tus ne­ce­si­da­des.

Al­te­r­na­ti­va: el método find

De­pe­n­die­n­do de para qué necesites el método índice, el método find puede ser una al­te­r­na­ti­va mejor. Es casi idéntico al método índice, con una di­fe­re­n­cia im­po­r­ta­n­te: si no se encuentra la subcadena, no se crea ninguna excepción. En su lugar, si­m­ple­me­n­te devuelve “-1”. Dado que una excepción no co­n­tro­la­da haría que tu programa se bloqueara, esto puede ser muy in­te­re­sa­n­te si no puedes o no quieres controlar una posible excepción. El pro­ce­sa­mie­n­to de la excepción puede simularse incluso con una condición if, como se muestra aquí:

string = "Python"
if(string.find("Py") != -1):
    print("Substring included! Index: ", string.find("Py"))
else:
    print("Substring not included!")
Python

En este ejemplo, si no se encuentra la subcadena, se produce una bi­fu­r­ca­ción, igual que cuando se gestiona una excepción. La mayor di­fe­re­n­cia es que en este ejemplo “find()” tiene que eje­cu­tar­se varias veces cuando se encuentra la subcadena.

Consejo

Python es uno de los lenguajes de pro­gra­ma­ción más flexibles que existen. Esto te da muchas opciones respecto a lo que puedes hacer con las cadenas. Descubre más en nuestro artículo sobre di­fe­re­n­tes formas de comparar cadenas en Python.

Ejemplos de Python string index

Ahora veremos dos ejemplos de cómo puede uti­li­zar­se “index()” en un programa. En primer lugar, veremos un ejemplo sencillo y, a co­n­ti­nua­ción, uno un poco más complejo.

string = "Peter Piper picked a peck of pickled peppers."
print("The string to check is ", string)
while(True):
    sub = input("substring input: ")
    try:
        print("the index is: ", string.index(sub))
    except:
        print("The substring is not included :/")
Python

Este ejemplo busca una subcadena en una cadena. A co­n­ti­nua­ción, muestra si la subcadena está contenida en la cadena y, en caso afi­r­ma­ti­vo, en qué índice. En este caso, la cadena que buscamos está pre­de­te­r­mi­na­da, pero la subcadena la vuelve a in­tro­du­cir el usuario en cada ocasión.

def try_except(start):
    try:
        return string.index(sub, start)
    except:
        return -1
string = input("string input: ")
sub = input("substring input: ")
occur = 0
start = 0
while(try_except(start) != -1):
    start = try_except(start) + len(sub)
    occur = occur + 1
print("Occur: ", occur)
Python

En este ejemplo, se comprueba si una cadena in­tro­du­ci­da por el usuario contiene una subcadena. Si se encuentra una entrada de la subcadena en la cadena, se in­cre­me­n­ta el número de entradas y se reinicia la búsqueda. Cuando se alcanza el final de la cadena, se obtiene el número total de re­pe­ti­cio­nes y el programa termina.

Consejo

¿Buscas una forma de publicar tu apli­ca­ción web rápida y fá­ci­l­me­n­te? Deploy Now de IONOS es la pla­ta­fo­r­ma perfecta para ti.

Ir al menú principal