Python
Tipos de datos básicos
string
split

Cómo dividir una cadena en python: por carácter, separadores múltiples, a lista, regex

Una de las tareas más comunes en programación, especialmente cuando se trata de datos basados en texto, es el truncado de cadenas. Python es uno de los lenguajes de programación más fáciles, potentes e intuitivos a la hora de tratar con cadenas.

Lo mismo ocurre con el truncado de cadenas. Python proporciona una serie de métodos y funciones para truncar cadenas.

En este artículo, resumiré cómo trabajar con cadenas en Python repasando las diversas técnicas para truncar y manipular cadenas, así como ejemplos de su uso.

1. Crear una lista truncando cada carácter con el método list()

En Python, una cadena es una secuencia de caracteres encerrados entre comillas simples o dobles. Las cadenas son inmutables, lo que significa que su contenido no puede ser cambiado una vez que son declaradas. Python proporciona algunos métodos básicos incorporados para trabajar con cadenas, como cortarlas, pegarlas y darles formato. De éstos, nos centraremos en cómo dividir una cadena.

Primero, usaremos el método list() para dividir cada carácter de una cadena, incluyendo espacios, en un array.

text = "Python is great language!"
text_list = list(text)
# Output: ['P', 'y', 't', 'h', 'o', 'n', ' ', 'i', 's', ' ', 'g', 'r', 'e', 'a', 't', ' ', 'l', 'a', 'n', 'g', 'u', 'a', 'g', 'e', '!']
 
# Si quisiéramos crear una lista sin espacios, primero eliminaríamos los espacios con el método replace() y luego llamaríamos al método list().
 
text_list = list(text.replace(' ', ''))
# Output:  ['P', 'y', 't', 'h', 'o', 'n', 'i', 's', 'g', 'r', 'e', 'a', 't', 'l', 'a', 'n', 'g', 'u', 'a', 'g', 'e', '!']

2. Dividir una cadena con el método split()

El método split() es la forma más común y sencilla de dividir una cadena en Python. Básicamente divide una cadena basándose en los espacios en blanco y devuelve una lista de subcadenas.

Ejemplo usando split().

text = "Python is great language!"
words = text.split()
 
print(words)

Este es el resultado de ejecutar el ejemplo

['Python', 'is', 'great', 'language!']

También puede pasar el carácter base en el que desea dividir la cadena como argumento al método split(), de forma que pueda dividir la cadena como desee.

text = "Python-is-great-language!"
words = text.split("-")
 
print(words)

Este es el resultado de ejecutar el ejemplo

['Python', 'is', 'great', 'language!']

El método split() tiene un parámetro maxsplit. El parámetro maxsplit especifica el número máximo de veces que se puede dividir la cadena. Después de dividir la cadena el máximo número de veces desde el principio, la cadena restante se devuelve como último elemento.

text = "Python is great language! It's easy-to-use."
words = text.split(" ", maxsplit=2)
 
print(words)

Este es el resultado de ejecutar el ejemplo

['Python', 'is', "great language! It's easy-to-use."]

3. Dividir líneas en los saltos de línea con el método splitlines()

Cuando trate con cadenas multilínea, utilice el método splitlines(). El método splitlines() divide una cadena multilínea línea por línea y devuelve una lista de cada registro. Por defecto, el método divide la cadena por caracteres de nueva línea (\n).

Un ejemplo de uso del método splitlines():

multiline_text = "Python is great language!\nIt's easy-to-use.\nJust try it today!"
lines = multiline_text.splitlines()
 
print(lines)

Este es el resultado de ejecutar el ejemplo

['Python is great language!', "It's easy-to-use.", 'Just try it today!']

El método splitlines() también puede tomar opcionalmente un parámetro keepends, Si este parámetro se establece en True, mantendrá el carácter de nueva línea (\n) al final de cada línea de la lista devuelta:

multiline_text = "Python is great language!\nIt's easy-to-use.\nJust try it today!"
lines = multiline_text.splitlines(keepends=True)
 
print(lines)

Este es el resultado de ejecutar el ejemplo

['Python is great language!\n', "It's easy-to-use.\n", 'Just try it today!']

4. Dividir una cadena con múltiples delimitadores utilizando la expresión regular re.split()

En algunos casos, puedes necesitar funciones de división más avanzadas para dividir una cadena basándote en múltiples delimitadores o patrones. El módulo re de Python proporciona una potente función split() que permite dividir cadenas utilizando expresiones regulares.

He aquí un ejemplo de división de una cadena usando múltiples delimitadores:

import re
 
text = "Python is;great:language! It's,easy-to-use."
words = re.split(r"[;:,\s]\s*", text)
 
print(words)

Este es el resultado de ejecutar el ejemplo

['Python', 'is', 'great', 'language!', "It's", 'easy-to-use.']

El patrón de expresión regular utilizado en el ejemplo anterior es r"[;:,\s]\s*". El significado de r"[;:,\s]\s*" es encontrar todos los patrones que empiecen por punto y coma (;), dos puntos (:), coma (,), o espacio (\s) seguido de cero o más espacios (\s*). La función re.split() dividirá la cadena siempre que aparezca este patrón.

Otra forma de usar re.split() es dividir una cadena basándose en un patrón en lugar de en un delimitador específico:

import re
 
text = "Python is;great:language!1234It's,easy-to-use."
words = re.split(r"\d+", text)
 
print(words)

Este es el resultado de ejecutar el ejemplo

['Python is;great:language!', "It's,easy-to-use."]

En el ejemplo anterior, el patrón de expresión regular (r"\d+") significa que coincide con uno o más números. La función re.split() divide la cadena cada vez que aparece este patrón.

5. Mejores prácticas para dividir cadenas en Python

  • Para dividir cadenas sencillas, utilice el método incorporado de Python split(). El método split() es eficiente y fácil de usar para la mayoría de las tareas de división de cadenas. Es la mejor solución, especialmente si está dividiendo una cadena basándose en un único delimitador.
  • Para dividir cadenas de varias líneas, utilice el método splitlines(). El método splitlines() es la forma más eficiente y conveniente de dividir una cadena multilínea línea por línea y devolver una lista con las líneas como elementos.
  • Para una división más avanzada, utilice expresiones regulares con re.split(). Si necesitas dividir una cadena basándote en múltiples delimitadores, patrones o reglas complejas, la función re.split() del módulo re proporciona unas capacidades de división potentes y flexibles.
  • Sin embargo, aunque las expresiones regulares son potentes, también pueden ser más lentas que los métodos incorporados. Recomendamos utilizar los métodos incorporados siempre que sea posible, y utilizar expresiones regulares sólo cuando sea necesario.

6. Conclusion

In this article, we've covered the built-in Python methods split() and splitlines(). and the re module's re.split() function, We've seen several techniques for splitting strings in Python. Understanding and mastering these techniques will allow you to efficiently manipulate and process text-based data in Python.

From simple text processing to complex data extraction and transformation, these powerful string manipulation tools are at your disposal, Esperamos que este artículo le resulte útil para realizar diversas tareas.

copyright for Python string split

© 2023 All rights reserved.