La manipulación de cadenas es una tarea común en cualquier lenguaje de programación. Python proporciona dos formas comunes de verificar si una cadena contiene otra cadena.
Python verifica si una cadena contiene otra cadena
La cadena en Python admite el operador in, por lo que podemos usarlo para verificar si una cadena es parte de otra cadena o no. La sintaxis del operador in es:
sub in str
Devuelve True
si la cadena “sub” es parte de “str”, de lo contrario devuelve False
. Veamos algunos ejemplos de cómo usar el operador in
en Python.
str1 = 'I love Python Programming'
str2 = 'Python'
str3 = 'Java'
print(f'"{str1}" contains "{str2}" = {str2 in str1}')
print(f'"{str1}" contains "{str2.lower()}" = {str2.lower() in str1}')
print(f'"{str1}" contains "{str3}" = {str3 in str1}')
if str2 in str1:
print(f'"{str1}" contains "{str2}"')
else:
print(f'"{str1}" does not contain "{str2}"')
Salida:
"I love Python Programming" contains "Python" = True
"I love Python Programming" contains "python" = False
"I love Python Programming" contains "Java" = False
"I love Python Programming" contains "Python"
Si no estás familiarizado con las cadenas con prefijo f en Python, es una nueva forma de formatear cadenas introducida en Python 3.6. Puedes obtener más información al respecto en cadenas con prefijo f en Python.
Cuando usamos el operador in, internamente llama a la función __contains__(). También podemos usar esta función directamente, aunque se recomienda usar el operador in por razones de legibilidad.
s = 'abc'
print('s contains a =', s.__contains__('a'))
print('s contains A =', s.__contains__('A'))
print('s contains X =', s.__contains__('X'))
Salida:
s contains a = True
s contains A = False
s contains X = False
Usando find() para verificar si una cadena contiene otra subcadena
También podemos usar la función find() de la cadena para verificar si una cadena contiene o no una subcadena. Esta función devuelve la primera posición del índice donde se encuentra la subcadena, de lo contrario devuelve -1.
str1 = 'I love Python Programming'
str2 = 'Python'
str3 = 'Java'
index = str1.find(str2)
if index != -1:
print(f'"{str1}" contains "{str2}"')
else:
print(f'"{str1}" does not contain "{str2}"')
index = str1.find(str3)
if index != -1:
print(f'"{str1}" contains "{str3}"')
else:
print(f'"{str1}" does not contain "{str3}"')
Salida:
"I love Python Programming" contains "Python"
"I love Python Programming" does not contain "Java"
Puedes revisar el script completo de Python y más ejemplos de Python desde nuestro Repositorio de GitHub.
Source:
https://www.digitalocean.com/community/tutorials/python-check-if-string-contains-another-string