Usos y ejemplos de split en Python para separar cadenas

En la mayoría (si no es que en todos) los lenguajes de programación existe la función split, cuya forma de trabajar es tomar una cadena y regresar un arreglo de esa cadena separada por tokens.

Si tenemos una cadena como "Hola mundo" y usamos el espacio " " como delimitador, al usar split nos devuelve un arreglo o lista que tiene ["Hola", "Mundo"]. Como delimitador se puede usar cualquier cadena o carácter.

Ahora veamos más ejemplos de split, así como su uso en Python.

Split en Python

La definición oficial es:

cadena.split(separador, [maximoNumeroDeSeparaciones])

Regresa una lista de las palabras en la cadena, usando separador como el delimitador. Si maximoNumeroDeSeparaciones es dada, se hacen al menos maximoNumeroDeSeparaciones separaciones (en donde la lista resultante será de maximoNumeroDeSeparaciones + 1). Si no se especifica o se pone como -1, se regresan todas las separaciones posibles.

Cuidado con el argumento de maximoNumeroDeSeparaciones, porque si lo especificamos regresará una lista con cadenas separadas, pero si alcanza el número de separaciones entonces devuelve lo que sobra (sin separarlo anteriormente). Ya veremos más abajo en los ejemplos.

¿Para qué sirve split en Python?

Para convertir una cadena en una lista, utilizando un separador. También para extraer todas las palabras de una oración, leer datos separados por comas (como CSV, aunque debe haber una mejor manera por ahí) y otras cosas que tengan que ver con separar una cadena.

Split con separador

La forma más básica es como se ve a continuación:

cadena = "Hola mundo"
separador = " "
separado_por_espacios = cadena.split(separador)
print("Separado por espacios es:", separado_por_espacios)

Definimos un separador (que puede consistir de múltiples caracteres) y llamamos a split. Eso devuelve una lista con los elementos.

Usar split en Python con un separador de más caracteres

Split también sirve usando un delimitador de múltiples caracteres. En un ejemplo básico, si tenemos una cadena separada por una palabra y un número, así:

80Edad:1Edad:20Edad:12Edad:44

Podemos usar el separador "Edad:" para obtener una lista de las edades con este código:

cadena = "80Edad:1Edad:20Edad:12Edad:44"
separador = "Edad:"
separado = cadena.split(separador)
print("Separado por 'Edad:' es:", separado)
# ['80', '1', '20', '12', '44']

Split con máximo número de separaciones

Ahora veamos cómo usar el máximo número de separaciones o el segundo argumento de split. Pongamos esta cadena separada por espacios:

Hola mundo estamos explicando el funcionamiento de split en Python

Si queremos que únicamente devuelva las dos primeras palabras que encuentre, ponemos el máximo a 2 (pero recuerda que devolverá una lista con maximoNumeroDeSeparaciones + 1):

cadena = "Hola mundo estamos explicando el funcionamiento de split en Python"
separador = " "
maximo_numero_de_separaciones = 2
separado_por_espacios = cadena.split(separador, maximo_numero_de_separaciones)
print("Separado por espacios es:", separado_por_espacios)
# ['Hola', 'mundo', 'estamos explicando el funcionamiento de split en Python']

Devuelve una lista de 3, con los dos elementos separados y el resto de la cadena en el último lugar.

Usos de split

Ahora veamos algunos usos que se me ocurren para ver cómo funciona split en Python.

Cuando tenemos un mensaje y decimos que pongan separados por saltos de línea

En algunos casos pedimos al usuario que introduzca datos usando una nueva línea cada uno. Por ejemplo una lista de enlaces o links separados por una línea. Para ello usamos el delimitador \n.

cadena = """google.com
youtube.com
parzibyte.me"""
separador = "\n"
separado = cadena.split(separador)
print("Separado por espacios es:", separado)
# ['google.com', 'youtube.com', 'parzibyte.me']

Cuando en un correo debemos separar el arroba

Usamos ahora el separador @. Si queremos únicamente el usuario, tomamos la parte 1. En caso de querer el dominio, tomamos la parte 2:

correo = "contacto@parzibyte.me"
separador = "@"
separado = correo.split(separador)
print("El usuario es {} y el dominio {}".format(separado[0], separado[1]))
# El usuario es contacto y el dominio parzibyte.me

Cuando tenemos una lista separada por comas

También funcionaría para parsear una cadena CSV con Python, pero estoy seguro de que hay una forma más optimizada. El punto es que podemos usar la coma como delimitador, como en los ejemplos anteriores.

Conclusiones

Mira la documentación oficial aquí. También puedes ver cómo separar cadenas con un delimitador en C.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *