Dividir una cadena por espacios en blanco en Python

Rayven Esplanada 10 octubre 2023
  1. Utilice el método split() para dividir una cadena en Python
  2. Utilice re.split() para dividir una cadena en Python
Dividir una cadena por espacios en blanco en Python

Este tutorial demostrará cómo dividir una cadena por espacios en blanco como delimitadores en Python.

Dividir cadenas en Python significa cortar una sola cadena en un array de cadenas según el delimitador o separador que se utilice.

Por ejemplo, si una cadena se inicializa como Hello, World! I am here. existe, dividirlo con espacios en blanco como delimitador dará como resultado la siguiente salida.

["Hello,", "World!", "I", "am", "here."]

Utilice el método split() para dividir una cadena en Python

El método de cadena integrado de Python split() es una solución perfecta para dividir cadenas usando espacios en blanco. Por defecto, el método split() devuelve un array de subcadenas que resultan de dividir la cadena original usando espacios en blanco como delimitador.

Por ejemplo, usemos el mismo ejemplo de cadena Hello, World! I am here.. Usaremos el método split() para separar la cadena en un array de subcadenas.

string_list = "Hello, World! I am here.".split()

print(string_list)

El resultado es el esperado:

["Hello,", "World!", "I", "am", "here."]

Además de eso, el método split() también elimina automáticamente los espacios en blanco iniciales y finales y los trata como un solo delimitador de espacios en blanco.

Modifiquemos el ejemplo anterior para incluir espacios en blanco iniciales, finales y consecutivos aleatorios.

string_list = "      Hello,   World! I am     here.   ".split()

print(string_list)

Otro escenario que el método split() maneja automáticamente son las pestañas, las nuevas líneas y los retornos de carro indicados con \t, \n y \r aparte del literal de espacio en blanco. Los formatos de espacios en blanco mencionados también se consideran delimitadores y sujetos para recortar.

Producción :

['Hello,', 'World!', 'I', 'am', 'here.']

Por ejemplo:

string_list = " Hello,   World! I am here.\nI am also\there too,\rand here.".split()

print(string_list)

Producción :

['Hello,', 'World!', 'I', 'am', 'here.', 'I', 'am', 'also', 'here', 'too,', 'and', 'here.']

Teniendo en cuenta estos factores, no tiene que preocuparse por recortar explícitamente cada espacio en blanco antes de ejecutar la función. Esta es una funcionalidad útil.

Utilice re.split() para dividir una cadena en Python

El módulo Python RegEx (Expresiones regulares) re también tiene una función predefinida split() que podemos usar en lugar del método incorporado split(). Aunque, tenga en cuenta que el re.split() es más lento en comparación con el método incorporado split() en cuanto al rendimiento.

La función re.split() acepta dos parámetros principales, una cadena de expresión regular y la cadena para realizar la función de división. La palabra clave RegEx que representa los espacios en blanco es \s. \s es una colación de todo tipo de espacios en blanco, incluidos los mencionados anteriormente (\n, \t, \r, \f).

Por ejemplo, declare una cadena y ejecute re.split() para dividirlas en un array de subcadenas. Para tener en cuenta los espacios en blanco iniciales y finales, agregue un signo + a la cadena de expresiones regulares para hacer coincidir uno o más espacios en blanco consecutivos como un solo grupo.

Además, agregue la palabra clave r a la cadena de expresiones regulares para asegurarse de que Python procesa las secuencias de escape de manera adecuada.

import re

exStr = "Hello, World!\nWelcome\tto my   tutorial\rarticle."

print(re.split(r"\s+", exStr))

Utilice re.findall() en lugar de re.split() para dividir una cadena en Python

Alternativamente, también se puede utilizar re.findall(). La función findall() funciona de forma totalmente opuesta a split(). Esta función busca todas las subcadenas que coinciden con la cadena RegEx dada, mientras que el método split() usa la cadena RegEx como delimitador.

Para usar la función findall() para dividir la cadena usando espacios en blanco, niegue la palabra clave de espacio en blanco \s escribiendo en mayúscula la letra (\S). findall() acepta los mismos parámetros que split().

import re

exStr = "Hello, World!\nWelcome\tto my   tutorial\rarticle."

print(re.findall(r"\S+", exStr))

Ambas funciones producirán el mismo Resultado:

['Hello,', 'World!', 'Welcome', 'to', 'my', 'tutorial', 'article.']

En resumen, la mejor y más óptima forma de dividir una cadena usando espacios en blanco como delimitador es el método incorporado split(). Se adjunta al objeto de cadena y considera los espacios en blanco iniciales y finales de forma predeterminada. El uso de esto tampoco necesita ningún conocimiento de expresiones regulares.

De lo contrario, re.split() y re.findall() pueden utilizarse como sustitutos del método split(), aunque ambas funciones funcionan más lentamente que el método incorporado split().

Rayven Esplanada avatar Rayven Esplanada avatar

Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.

LinkedIn

Artículo relacionado - Python String