Geekflare recibe el apoyo de nuestra audiencia. Podemos ganar comisiones de afiliación de los enlaces de compra en este sitio.
En Desarrollo Última actualización: 25 de septiembre de 2023
Compartir en:
Escáner de seguridad de aplicaciones web Invicti - la única solución que ofrece verificación automática de vulnerabilidades con Proof-Based Scanning™.

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 y maxsplit

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 cadena maxsplit número de veces en la ocurrencia del separador especificado por el parámetro sep.

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:

Dividir el contenido de un archivo Python

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 archivo f.
  • 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.

  • Bala Priya C
    Autor
Gracias a nuestros patrocinadores
Más lecturas sobre desarrollo
Potencia tu negocio
Algunas de las herramientas y servicios que le ayudarán a hacer crecer su negocio.
  • Invicti utiliza el Proof-Based Scanning™ para verificar automáticamente las vulnerabilidades identificadas y generar resultados procesables en tan solo unas horas.
    Pruebe Invicti
  • Web scraping, proxy residencial, gestor de proxy, desbloqueador web, rastreador de motores de búsqueda, y todo lo que necesita para recopilar datos web.
    Pruebe Brightdata
  • Monday.com es un sistema operativo de trabajo todo en uno que te ayuda a gestionar proyectos, tareas, trabajo, ventas, CRM, operaciones, flujos de trabajo y mucho más.
    Prueba Monday
  • Intruder es un escáner de vulnerabilidades en línea que encuentra puntos débiles de ciberseguridad en su infraestructura, para evitar costosas violaciones de datos.
    Prueba Intruder