Python split: cómo dividir cadenas
Con Python split, el lenguaje de programación web te ofrece una manera de dividir cadenas en lugares concretos. Puedes determinar exactamente cómo es esta división con los parámetros separator y maxsplit.
- Rápido, seguro, flexible y escalable
- Certificado SSL/DDoS incluido
- Dominio y asesor personal incluidos
¿Qué es Python split?
En algunos casos puede ser útil o incluso necesario dividir o separar un Python string. El método apropiado para ello es Python split. La separación suele llevarse a cabo a la altura de los espacios de una cadena y puede controlarse mediante diferentes parámetros. Hay diferentes modalidades de Python split que pueden ser útiles dependiendo de sus aplicaciones.
Sintaxis y funciones de Python split
La sintaxis estándar de Python split es la siguiente:
string.split(separator, maxsplit)
De forma opcional, se pueden usar dos parámetros, estos son, separator y maxsplit. Si no se especifica un parámetro concreto, Python split divide la cadena correspondiente en cada espacio. El parámetro separator marca la cadena de caracteres que se debe separar. Cada vez que se cumple esta condición o marca, se efectúa el correspondiente fraccionamiento. El parámetro maxsplit permite especificar la frecuencia con la que se debe dividir la cadena. Si no se define este parámetro, el programa realizará un número ilimitado de divisiones.
Ejemplos sencillos de Python split con separator
Estos tres sencillos ejemplos son idóneos para ilustrar cómo se puede segmentar una cadena con Python split. Puedes encontrar la estructura básica en el tutorial de Python.
Seccionar por espacios
En el primer código, la cadena se divide con regularidad a la altura de los espacios. El código apropiado para ello es el siguiente:
text = "Este es un texto de ejemplo"
print(text.split())
El resultado de la división tiene el siguiente aspecto:
["Este", "es", "un", "texto", "de", "ejemplo"]
Seccionar por comas
En el segundo ejemplo, se ve que la cadena se separa a la altura de las comas. El código apropiado es el siguiente:
animales = "perro, gato, ratón, caballo"
print(animales.split(", " ))
Con él obtendrás lo siguiente:
["perro", "gato", "ratón", "caballo"]
Seccionar por almohadillas
También se puede utilizar una almohadilla para separar los términos entre sí y así seccionar una cadena. Además, se asigna el valor x a Python split. El código correspondiente es el siguiente:
coloresstring = "azul#rojo#amarillo#naranja"
colores = color_string.split("#")
print (colores)
El resultado es el siguiente:
["azul", "rojo", "amarillo", "naranja"]
Definir maxsplit para Python split
El segundo parámetro, maxsplit, es igual de sencillo. Los siguientes tres ejemplos muestran cómo funciona:
maxsplit a 0
En el primer ejemplo, se fija maxsplit a 0:
colores = "azul, rojo, amarillo, naranja"
print(colores.split(", ", 0))
El resultado se muestra como sigue:
["azul, rojo, amarillo, naranja"]
maxsplit a 1
Sin embargo, si se fija el valor de maxsplit a 1, el resultado cambia. El código correspondiente es el siguiente:
colores = "azul, rojo, amarillo, naranja"
print(colores.split(", ", 1))
Este es el resultado tras el Python split:
["azul", "rojo, amarillo, naranja"]
maxsplit a 2
Para dividir dos veces, fija el valor de maxsplit a 2 y ejecuta Python split. El código correspondiente es el siguiente:
colores = "azul, rojo, amarillo, naranja"
print(colores.split(", ", 2))
Este es el resultado:
["azul", "rojo", "amarillo, naranja"]
Python split dentro de palabras individuales
Aunque la variante estándar es una división mediante comas o espacios, también se pueden dividir las cadenas de caracteres de determinadas palabras. En el siguiente ejemplo, se vuelven a utilizar los nombres de animales y se seccionan a la altura de la letra a. Funciona de la siguiente manera:
animales = "perro, gato, ratón, caballo"
print(animales.split("a"))
El resultado correspondiente tiene un aspecto inusual, pero funciona como se esperaba:
["perro, g", "to, r", "tón, c", "b", "llo"]
Si ahora se añade el parámetro maxsplit y se limita así el número de divisiones a 1, se obtiene el siguiente resultado:
animales = "perro, gato, ratón, caballo"
print(animales.split("a", 1))
["perro, g", "to, ratón, caballo"]
Convertir un string en una lista con Python split
Una función popular y muy utilizada de Python split es la conversión de un string en una lista de Python. Para ello se necesitan los dos parámetros, separator y maxsplit. En el siguiente ejemplo, la lista de colores se secciona por almohadillas y se clasifica, gracias a maxsplit, en una lista con un máximo de dos elementos. Para ello, se fija el valor de maxsplit a 1. El código correspondiente es el siguiente:
color_string = "azul#rojo#amarillo#naranja"
colores = color_string.split ( "#", 1 )
print (colores)
Esto nos da el siguiente resultado:
["azul", "rojo#amarillo#naranja"]
La diferencia entre Python split y rsplit
Además de Python split, también existe el método rsplit. Esta variante es similar a la mostrada anteriormente y, en muchos casos, produce exactamente el mismo resultado. Especialmente si no se especifica el parámetro opcional maxsplit, la salida es idéntica para ambas variantes. Sin embargo, si defines el parámetro separator como none, es decir, lo dejas en blanco, y fijas el valor de maxsplit a 2, verás la diferencia:
animales = "perro, gato, ratón, caballo"
print(animales.split(None, 2))
Este es el resultado con Python split:
["perro", "gato", "ratón, caballo"]
Python split divide la cadena desde la izquierda.
Si, en cambio, usas rsplit con el siguiente código:
animales = "perro, gato, ratón, caballo"
print(tiere.rsplit(None, 2))
obtendrás el siguiente resultado:
["perro, gato", "ratón", "caballo"]
Es evidente que la división con rsplit se hace desde la derecha.