En este tutorial, aprenderá a utilizar el método split() de Py thon para dividir una cadena en una lista de cadenas.
Cuando trabaje con cadenas de Python, puede utilizar varios métodos de cadena incorporados para obtener copias modificadas de las cadenas, como convertir a mayúsculas, ordenar una cadena, etc. Uno de estos métodos es .split()
que divide una cadena Python en una lista de cadenas, y aprenderemos más sobre él mediante ejemplos de codificación.
Al final del tutorial, habrá aprendido lo siguiente
- cómo funciona el método
.split(
) - cómo personalizar la división utilizando los parámetros
sep
ymaxsplit
Comencemos
Sintaxis del método split() en Python
He aquí la sintaxis general para utilizar el método split
() de Python en cualquier cadena válida:
string.split(sep, maxsplit)
# Parámetros:
sep, maxsplit
# Devuelve:
Una lista de cadenas
Aquí, cadena puede ser cualquier cadena válida de Python.
Los parámetros sep
y maxsplit
son opcionales.
- sep denota el separador sobre el que desea dividir la cadena. Debe especificarse como una cadena.
- maxsplit es un número entero que especifica cuántas veces desea dividir la cadena.
Sus valores por defecto se utilizan cuando no proporciona parámetros opcionales.
- Cuando no proporciona el valor
sep
explícitamente, se utiliza el espacio en blanco como separador por defecto. - Cuando no especifica el valor para
maxsplit
, se utiliza por defecto -1, lo que significa que la cadena se dividirá en todas las ocurrencias del separador.
Expresando la sintaxis en lenguaje llano:
El método
split(
) divida una cadenamaxsplit
número de veces en la ocurrencia del separador especificado por el parámetrosep
.
Ahora que hemos aprendido la sintaxis del método split() de Python procedamos a codificar algunos ejemplos.
Dividir una cadena Python en una lista de cadenas
Si tiene Python 3 instalado en su máquina, puede codificar con este tutorial ejecutando los siguientes fragmentos de código en un REPL de Python.
Para iniciar el REPL, ejecute uno de los siguientes comandos desde el terminal:
$ python
$ python -i
▶️ También puede probar estos ejemplos en el editor de Python de Geekflare.
En este ejemplo py_str es una cadena de Python. Llamemos al método .split() sobre py_str sin ningún parámetro y observemos la salida.
py_str = "Aprenda a usar split() en Python"
py_str.split()
# Salida
['Aprenda', 'cómo', 'a', 'usar', 'split()', 'en', 'Python']
Como se ve arriba, la cadena se divide en todas las apariciones de espacios en blanco.
Dividir una cadena Python en la ocurrencia de separadores
#1. Como primer ejemplo, dividamos la cadena py_str
con doble guión bajo (__) como separador.
py_str = "Todos__los__mejores"
py_str.split(sep='__')
# Salida
['Todos', 'los', 'mejores']
#2. Veamos otro ejemplo. Aquí, py_str
tiene tres frases, cada una terminada por un punto (.).
py_str = "Me encanta codificar. Python es genial. Voy a aprender Python en 2022"
py_str.split(sep='.')
# Salida
['Me encanta codificar', ' Python mola', " Voy a aprender Python en 2022"]
▶️ Cuando llamamos al método .split(
) sobre esta cadena, con '.
' como separador, la lista resultante tiene tres frases, como se ve en la celda de código anterior.
#3. Formulemos algunas preguntas:
- ¿Qué ocurre cuando el separador nunca aparece en la cadena?
- ¿Cómo se producirá la división en este caso?
He aquí un ejemplo:
Intentamos dividir py_str
en la ocurrencia de asterisco (*)-que no ocurre.
py_str = "Esta línea no contiene ningún asterisco."
py_str.split(sep='*')
# Salida
['Esta línea no contiene ningún asterisco.']
Como en este caso no se puede realizar ninguna división, la lista resultante contiene la cadena completa.
En la siguiente sección, veremos cómo podemos utilizar el método split(
) sobre el contenido de un archivo de texto.
Dividir el contenido de un archivo Python
Cuando trabaje con archivos de texto en Python, puede que tenga que dividir el contenido del archivo basándose en un separador para facilitar su procesamiento.
Aquí tiene un ejemplo de archivo de texto:

El fragmento de código siguiente muestra cómo utilizar split en el contenido del archivo de texto de muestra.
with open('sample.txt') as f:
content = f.read()
str_list= content.split(sep='...')
for string in str_list:
print(string,end='')
El código anterior hace lo siguiente
- Utilice el gestor de contexto
with
para abrir y trabajar con el archivo de texto 'muestra.txt'. - Lee el contenido del archivo utilizando el método
.read()
en el objeto de archivof
. - Divida el contenido en la aparición del separador elipsis (...) en una lista
str_list
. - Realiza un bucle a través de
str_list
para acceder a cada cadena y la imprime.
Esta es la salida.
# Salida
Este es un archivo de texto de ejemplo
Contiene información sobre
Introducción a la <a href="https://geekflare.com/es/pcap-certification/">programación en Python</a>
Según la encuesta de desarrolladores de StackOverflow de 2022
Python es uno de los lenguajes de programación más queridos
¿A qué espera? ¡Empieza a aprender!
Como ejercicio, puede intentar dividir el contenido de un archivo de texto en cualquier separador de su elección.
Dividir una cadena Python en trozos
Si divide una cadena una vez, obtendrá dos trozos; si la divide dos veces, obtendrá tres.
📋 En general, cuando se divide una cadena
K
veces, obtendráK 1
trozos.
Esto se ilustra a continuación.
#1. Establecemos maxsplit
igual a 1. No hemos especificado un separador, por lo que la división se producirá en los espacios en blanco por defecto.
py_str = "Trozo#1 Soy un trozo más grande, Trozo#2"
py_str.split(maxsplit=1)
# Salida
['Trozo#1', "Soy un trozo más grande, Trozo#2"]
Aunque el segundo trozo de la lista contiene espacios en blanco, la división no se produce porque ahora la división está controlada por el valor maxsplit
de uno.
#2. Aumentemos el valor maxsplit
a 2 y observemos cómo se produce la división en el siguiente ejemplo.
py_str = "Trozo#1 Trozo#2 Soy un gran Trozo#3, aunque contengo espacios en blanco"
py_str.split(maxsplit=2)
# Salida
['Trozo#1',
'Trozo#2',
"Soy un gran Trozo#3, aunque contengo espacios en blanco"]
Como en el ejemplo anterior, el valor maxsplit decide el número de splits realizados. Obtenemos tres chunks, splits después de la primera y segunda aparición de espacios en blanco.
#3. ¿Qué ocurre si fijamos maxsplit
en un valor mayor que el número de ocurrencias del separador?
En la siguiente celda de código, fijamos maxsplit
en 8 cuando la cadena contiene sólo cuatro comas.
py_str = "Hay, sólo, 4, comas"
py_str.split(maxsplit=8)
# Salida
['Hay,', 'hay,', 'sólo,', '4,', 'comas']
Aquí, el método split divide py_str
en las cuatro ocurrencias de una coma. Incluso si intenta establecer maxsplit a un valor menor que -1, digamos, -7, la división se hará en todas las ocurrencias del separador.
A continuación, juntemos todo lo que hemos aprendido y utilicemos ambos parámetros sep
maxsplit
.
Dividir una cadena Python en trozos sobre un separador
#1. Supongamos que necesitamos dividir la cadena py_str
en tres trozos al aparecer la coma (,). Para ello, podemos establecer el valor sep
en ',' y el valor maxsplit
en 2 en la llamada al método.
py_str = "Trozo#1, Trozo#2, Soy un gran Trozo#3, aunque contenga un ,"
py_str.split(sep = ',',maxsplit=2)
# Salida
['Trozo#1', ' Trozo#2', " Soy un gran Trozo#3, aunque contenga un ,"]
Como se ve en la salida, la división se produce dos veces en las dos primeras apariciones del separador.
#2. El separador sep
no siempre tiene que ser un carácter especial. Puede ser una secuencia de caracteres especiales, como los guiones bajos dobles que utilizamos antes, o incluso podría ser una subcadena.
Establezcamos la cadena 'learn' como argumento sep
y veamos cómo se produce la división para distintos valores de maxsplit
. Aquí, fijamos maxsplit
es 2.
py_str = "¡Necesitas aprender estructuras de datos, aprender algoritmos, y aprender más!"
py_str.split(sep = 'aprender',maxsplit=2)
# Salida
['Necesitas ', ' estructuras de datos, ', ' algoritmos, ¡y aprender más!']
#3. Si desea dividir py_str
en todas las apariciones de la cadena 'learn', podemos llamar a este método .split(
) estableciendo sep = 'learn'
-sin el parámetro maxsplit
. Esto equivale a establecer explícitamente el valor maxsplit
en -1, como se muestra en la celda de código siguiente.
py_str = "¡Necesita aprender estructuras de datos, aprender algoritmos y aprender más!"
py_str.split(sep = 'aprender',maxsplit=-1)
# Salida
['¡Necesita ', ' estructuras de datos, ', ' algoritmos y ', ' más!']
Vemos que la división se produce en todas las apariciones de 'aprender'.
Para terminar
Espero que ahora haya entendido cómo utilizar el método .split()
con cadenas de Python.
He aquí un resumen de este tutorial:
- El método incorporado . split () de Python divide una cadena en una lista de cadenas.
- Utilice la cadena. dividir() para dividir la cadena en todas las apariciones del separador por defecto, el espacio en blanco.
- Utilice string.split(sep,maxsplit) para dividir la cadena un número maxsplit de veces en la aparición del separador sep. La lista resultante tiene maxsplit 1 elementos.
Como siguiente paso, puede aprender a comprobar si las cadenas de Python son palíndromos o anagramas.