Este artículo pretende que el alumno comprenda mejor las subcadenas en Python.

Le enseñará cómo crear una subcadena, extraer diferentes porciones de ella de una cadena y cómo funcionan las subcadenas en Python utilizando varios ejemplos para ponerlo en práctica. Además, comprobaremos la existencia de la subcadena en una cadena.

Antes de empezar, es esencial saber qué son una cadena y una subcadena. Una cadena es una secuencia de caracteres Unicode formada por caracteres alfanuméricos y/o caracteres especiales. Podemos definir una subcadena como una porción de la secuencia de caracteres dentro de una cadena.

Discutiremos lo siguiente:

  • Creación de una subcadena.
  • Formas de trocear una subcadena.
  • Número de apariciones de una subcadena
  • Búsqueda de la presencia de una subcadena en una cadena.

Comencemos

Creación de una subcadena

Una subcadena se crea principalmente mediante la técnica de troceado. Esta técnica permite la extracción de la subcadena mediante la definición de los delimitadores de inicio-índice, fin-índice y paso. Estos delimitadores permiten la extracción especificando el índice preciso de los caracteres que desea obtener.

La sintaxis es la siguiente

cadena[inicio-índice: fin-índice: paso]

Tenga en cuenta que el valor del índice en cualquier cadena empieza por cero.

El parámetro begin-index indica el índice inicial de la subcadena. Por lo tanto, si omite este elemento al trocear, Python asume automáticamente que su valor de índice es cero.

End-index es el último índice de la subcadena. Si no lo menciona, el rebanado asume que su valor es igual a la longitud de la cadena.

Paso: Indica el siguiente carácter a considerar después del carácter actual. El valor de este parámetro suele ser uno. Cuando se omite el parámetro paso durante el troceado, se sigue asumiendo que su valor es uno.

Formas de trocear una cadena

Existen varias formas de obtener una subcadena a partir de una cadena. Entre ellas se incluyen:

#1. Trocear utilizando begin-index y end-index.

Cadena = cadena[inicio-índice : fin-índice]

En un caso en el que desee obtener el nombre de pila de una persona a partir de su nombre completo, lo implementará de la siguiente manera:

cadena = 'Michael Doe'

print(cadena[0:7])

La salida será

Michael

#2. Rebanar utilizando begin-index sin end-index.

Cadena= cadena[inicio-índice:]

Aquí, sólo indicamos a partir de qué índice queremos empezar a extraer nuestros caracteres de la subcadena de los extractos de rebanado de cadena hasta el último índice de la cadena completa que normalmente tiene un índice de -1.

Ejemplo:

string = 'Esto es para demostrar el troceado de una cadena utilizando el índice-inicial sin el índice-final'

print(cadena[7:])

Salida:

para demostrar el troceado de una cadena utilizando el índice-inicio sin el índice-final

#3. Rebanado utilizando el índice-final sin el índice-inicial.

Cadena = cadena[:end-index]

Aquí indicamos el último carácter que debe incluir la subcadena, omitiendo desde dónde debe comenzar. Por lo tanto, el troceado mostrará la subcadena a partir del carácter de índice cero de la cadena.

Ejemplo:

string = 'Esto es para demostrar el troceado de una cadena utilizando el end-index sin el begin-index'

print(cadena[:9])

Salida:

Esto es t

#4. Rebanando la cadena entera.

Cadena = cadena[ : ]

En este caso, no identificamos ninguno de los delimitadores; por lo tanto, se devuelve la cadena completa.

Ejemplo

cadena = 'Esto es para demostrar el troceado de toda la cadena'

print(cadena[:])

Salida:

Esto es para demostrar el troceado de toda la cadena

#5. Rebanar un único carácter de una cadena.

Cadena = cadena[índice]

Aquí se trocea un valor índice preciso de un carácter de la cadena.

Ejemplo:

string = 'Esto es para demostrar el troceado de un único carácter de una cadena'

print(cadena[8])

La ‘t’ de ‘to’ se imprime ya que su valor índice es 8.

#6. Troceado utilizando el índice inicial, el índice final y el paso.

Ejemplo

cadena = 'Esto es para demostrar el troceado de la cadena utilizando el índice-inicial, el paso y el índice-final'

print(string[11:24:1])

Cuando el valor del paso se fija en 1, se produce el troceado normal, y aquí se muestra lo siguiente.

demostrar s

Utilizando el mismo ejemplo, fijemos el valor del paso en 2.

cadena = 'Esto es para demostrar el troceado de la cadena utilizando el índice-inicial, el paso y el índice-final'

print(string[11:24:2])

El troceado de los caracteres se hará en pasos de 2 de esta forma.

dmntaes

El rebanado extrae el segundo carácter después del actual. Por lo tanto, Python trocea’ demuestra s’ a D-m-n-t-a-e-s.

#7. Invertir una cadena utilizando un paso negativo.

En este ejemplo, se mostrará toda la cadena desde el último carácter de la cadena hasta el primero.

cadena = 'Esto es para demostrar la inversión de una cadena utilizando el paso negativo'

print(cadena[::-1])

Salida:

pets evitagen eht gnisu gnirts gnisrever etartsnomed ot si sihT

El paso negativo funciona así

REVERSE
0123456
-6-5-4-3-2-1

El valor del índice inicial de la cadena inversa anterior parte de 0 por defecto y termina en 6. El paso negativo invierte el valor del índice del último carácter y lo aplica al primer carácter, y niega este valor.

Más ejemplos sobre el troceado

Obtención de los cuatro primeros caracteres de la subcadena de una cadena.

cadena = 'caracteres'

print(cadena[0:4])

Salida:

char

Lea también: Cómo eliminar el último carácter de una cadena en Python

Encontrar la presencia de una subcadena en una cadena

Python utiliza la función find() o el operador ‘in’ para comprobar la existencia de una subcadena en una cadena.

Utilizando el ejemplo del operador ‘in

cadena = 'esto es para demostrar que una determinada subcadena se encuentra en una cadena '
if 'se encuentra' in cadena: 
    print('Se ha encontrado la subcadena') 
si no 
    print('No se ha podido encontrar la subcadena definida')

Salida:

No se pudo encontrar la subcadena definida

El ejemplo anterior comprueba si la subcadena ‘find’ está presente en la cadena declarada. Dado que la subcadena no se encuentra en la cadena, la salida es la mostrada anteriormente.

Sustituyendo la subcadena ‘find’ por la subcadena ‘that’ y comprobando si existe o no en la cadena devolvería en su lugar ‘substring is found’ porque está presente en la cadena.

Utilizando el ejemplo de la función find()

find substring
cadena = 'usando cadena para encontrar si una subcadena está presente en una cadena'

if string.find('encontrada') != -1:

    print("La subcadena 'encontrada' existe")

si no:

    print("La subcadena 'encontrada' no existe")

salida:

<code class="language-python">La subcadena 'encontrada' no existe

En el ejemplo anterior, hemos intentado encontrar una subcadena que no forma parte de nuestra cadena. Como hemos visto anteriormente, la función find() comprueba toda la cadena, y no se encuentra esta subcadena ‘encontrada’ en particular, devuelve la salida ‘La subcadena encontrada no existe’ como salida.

Encontrar el número de ocurrencias de una subcadena

Python utiliza la función count() que implementa esta condición, como en el ejemplo siguiente.

cadena = " Contar el número de ocurrencias de 'o' en esta cadena "

print("El recuento de la subcadena 'o' es: ",string.count('o'));

Salida:

El recuento de subcadenas 'o' es  5

Conclusión

Este artículo debería proporcionarle una mejor comprensión de lo que es una subcadena en Python, cómo crearla, y ha explicado claramente la idea de rebanar y cómo implementarla. Utilizando los ejemplos proporcionados anteriormente como guía, practique más ejemplos para comprender mejor el concepto.

También puede aprender cómo crear un juego de adivinar números utilizando Py thon o cómo obtener datos JSON en Python.

¡Feliz codificación!