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.
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 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.
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.
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']
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.
Ahora veamos algunos usos que se me ocurren para ver cómo funciona split en Python.
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']
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
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.
Mira la documentación oficial aquí. También puedes ver cómo separar cadenas con un delimitador en C.
Hoy te voy a presentar un creador de credenciales que acabo de programar y que…
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Esta web usa cookies.