Domine el Método String.find() en Python: Sintaxis, Ejemplos y Alternativas
¿Qué es String.find() en Python?
El método String.find() en Python devuelve el índice de la primera ocurrencia de una subcadena especificada dentro de una cadena. Si la subcadena no se encuentra, devuelve graciosamente -1 en lugar de lanzar una excepción, lo que lo hace una opción conveniente para búsquedas de subcadenas.
En esta guía aprenderá a usar find() efectivamente, explorar sus parámetros, compararlo con métodos relacionados e incluso contar cuántas veces aparece una subcadena.
- Entendiendo String.find()
- Sintaxis y parámetros
- Usando argumentos por defecto
- Especificando índice de inicio
- Definiendo rango de inicio y fin
- Encontrando posiciones de subcadenas
- Comparando con rfind()
- Comparando con index()
- Contando ocurrencias de subcadena
Sintaxis del método string find() en Python
La firma del método es directa:
string.find(substring, start, end)
Parámetros
- substring – El texto que está buscando.
- start (opcional) – Índice donde comienza la búsqueda; por defecto
0. - end (opcional) – Índice donde termina la búsqueda; por defecto la longitud de la cadena.
Usando find() con Valores por Defecto
Cuando no se proporciona start o end, find() escanea toda la cadena desde el principio. Devuelve el índice de la primera coincidencia o -1 si no se encuentra ninguna.
Ejemplo:
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("La posición de Tutorials está en:", mystring.find("Tutorials"))
Salida:
La posición de Tutorials está en: 12
Especificando un Índice de Inicio
Proporcionar un argumento start limita la búsqueda a comenzar en esa posición, extendiéndose hasta el final de la cadena.
Ejemplo:
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("La posición de Tutorials está en:", mystring.find("Tutorials", 20))
Salida:
La posición de Tutorials está en: 48
Definiendo un Rango de Inicio y Fin
Al suministrar tanto start como end, puede confinar la búsqueda a un slice específico de la cadena.
Ejemplo:
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("La posición de Tutorials está en:", mystring.find("Tutorials", 5, 30))
Salida:
La posición de Tutorials está en: 12
Encontrando Posiciones y Manejo de Subcadenas Ausentes
Aquí está cómo se comporta find() cuando la subcadena está presente y cuando está ausente.
Ejemplo:
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("La posición de Best site está en:", mystring.find("Best site", 5, 40))
print("La posición de Guru99 está en:", mystring.find("Guru99", 20))
Salida:
La posición de Best site está en: 27 La posición de Guru99 está en: -1
Comparando con rfind()
rfind() es similar a find() pero devuelve el índice más alto donde ocurre la subcadena. Si la subcadena no está presente, ambos métodos devuelven -1.
Ejemplo:
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("La posición de Tutorials usando find() : ", mystring.find("Tutorials"))
print("La posición de Tutorials usando rfind() : ", mystring.rfind("Tutorials"))
Salida:
La posición de Tutorials usando find() : 12 La posición de Tutorials usando rfind() : 48
Comparando con index()
El método index() se comporta como find() pero lanza un ValueError cuando la subcadena falta.
Ejemplo:
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("La posición de Tutorials usando find() : ", mystring.find("Tutorials"))
print("La posición de Tutorials usando index() : ", mystring.index("Tutorials"))
Salida:
La posición de Tutorials usando find() : 12 La posición de Tutorials usando index() : 12
Cuando la subcadena no se encuentra:
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("La posición de Tutorials usando find() : ", mystring.find("test"))
print("La posición de Tutorials usando index() : ", mystring.index("test"))
Salida:
La posición de Tutorials usando find() : -1 Traceback (most recent call last): File "task1.py", line 3, inprint("La posición de Tutorials usando index() : ", mystring.index("test")) ValueError: substring not found
Contando Ocurrencias de Subcadena
Para contar cuántas veces aparece una subcadena, itere a través de la cadena y llame repetidamente a find() con un índice de inicio actualizado.
Ejemplo:
my_string = "test string test, test string testing, test string test string"
startIndex = 0
count = 0
for _ in range(len(my_string)):
k = my_string.find('test', startIndex)
if k != -1:
startIndex = k + 1
count += 1
print("El conteo total de subcadena test es:", count)
Salida:
El conteo total de subcadena test es: 6
Conclusiones Clave
find()devuelve el primer índice coincidente o-1si está ausente.- Parámetros:
substring,startopcional (defecto 0),endopcional (defecto longitud de cadena). - Use
startpara comenzar la búsqueda en una posición específica. - Use
startyendpara limitar la búsqueda a un slice de subcadena. rfind()devuelve el último índice coincidente.index()es más estricto, lanzando error cuando la subcadena falta.- Iterando con
find()puede contar ocurrencias totales.
python
- Domine el Método strip() de Python: Guía Completa y Ejemplos Prácticos
- Domine str.count() en Python: Cómo Contar Caracteres y Subcadenas con Ejemplos
- Domine el Formateo de Strings en Python con format(): Ejemplos Claros
- Python len(): Guía Práctica para Medir Longitud de Objetos
- Dominando las funciones lambda en Python: ejemplos prácticos y mejores prácticas
- Función round() en Python explicada con ejemplos prácticos
- Dominando la función map() de Python: sintaxis, ejemplos y mejores prácticas
- Python timeit(): medición de tiempo de ejecución con ejemplos prácticos
- Entendiendo type() e isinstance() en Python: ejemplos prácticos
- Método Java String length(): Cómo obtener el tamaño de un String (Ejemplo)
- Dominando Java String.indexOf(): Localizar subcadenas y ejemplos prácticos