Cómo dividir las cuerdas en Python

Cómo dividir las cuerdas en Python
Este artículo explicará cómo dividir las cadenas en Python usando métodos "Split ()" y "Partition ()". Estos métodos son especialmente útiles si desea convertir una oración o un grupo de palabras a tipos de pitón parsables e iterables. Todas las muestras de código en esta guía se prueban con Python versión 3.8.6.

Método dividido

El método "Split ()" se puede usar para dividir palabras utilizando un separador especificado por el usuario. Devuelve una lista de palabras divididas sin incluir el separador. Si el usuario especifica ningún separador, Whitespace (uno o más) se usa como un solo separador.

Por ejemplo, el siguiente código devolverá "['Linux', 'Sugerencia']" como salida:

Text = "Linux Sugerencia"
texto.dividir()

El siguiente código devolverá "['Linuxhint', 'com']" como salida cuando "."Se usa como separador:

Text = "Linuxhint.com "
texto.dividir(".")

El separador no tiene que ser un solo personaje. El método dividido toma dos argumentos:

  • SEP: Separador que se utilizará para dividir
  • MaxSplit: número de divisiones para hacer

Ambos argumentos son opcionales. Como se mencionó anteriormente, si no se especifica el argumento "SEP", el espacio en blanco se usa como separador para dividir. El argumento "maxsplit" tiene un valor predeterminado de "-1" y divide todos los sucesos por defecto. Considere el código a continuación:

Text = "Linuxhint.co.a nosotros"
texto.dividir(".")

Devolverá "['Linuxhint', 'Co', 'Us']" como salida. Si desea dejar de dividir en la primera ocurrencia del separador, especifique "1" como el argumento "maxsplit".

Text = "Linuxhint.co.a nosotros"
texto.dividir(".", 1)

El código anterior devolverá "['Linuxhint', CO.nosotros '] "como salida. Simplemente especifique el número de ocurrencias en los que desea que el proceso dividido se detenga como segundo argumento.

Tenga en cuenta que si hay separadores consecutivos, una cadena vacía será devuelta para los separadores restantes después de la primera división (cuando no se usa el argumento "maxsplit"):

text = "Linuxhint ... com"
texto.dividir(".")

El código anterior devolverá "['Linuxhint',", 'com'] "como salida. En caso de que desee eliminar las cadenas vacías de la lista resultante, puede usar la siguiente declaración de comprensión de la lista:

text = "Linuxhint ... com"
resultado = texto.dividir(".")
resultado = [Artículo para el elemento en el resultado si el elemento != ""]
Imprimir (resultado)

Obtendrá "['Linuxhint', 'Com']" como la salida después de ejecutar la muestra de código anterior.

Tenga en cuenta que el método "Split ()" se mueve de izquierda a derecha para dividir las cadenas en palabras. Si desea dividir la cadena desde la dirección derecha a izquierda, use "rsplit ()" en su lugar. Su sintaxis, uso y argumentos son exactamente los mismos que el método "Split ()".

Si no se encuentra ningún separador en la cadena mientras usa métodos "Split ()" o "Rsplit ()", la cadena original se devuelve como el elemento de lista única.

Método de partición

El método "Partition ()" se puede usar para dividir cadenas y funciona idéntico al método "dividido ()" con algunas diferencias. La diferencia más notable es que conserva el separador y lo incluye como un elemento en la tupla resultante que contiene palabras divididas. Esto es especialmente útil si desea dividir la cadena en un objeto iterable (tupla en este caso) sin eliminar ningún caracteres originales. Considere el código a continuación:

Text = "Linuxhint.com "
resultado = texto.dividir(".")
Imprimir (resultado)

La muestra de código anterior devolverá "('Linuxhint', '.',' com ') "como la salida. Si desea que el resultado sea de tipo de lista, use la siguiente muestra de código en su lugar:

Text = "Linuxhint.com "
resultado = list (texto.dividir("."))
Imprimir (resultado)

Deberías obtener "['Linuxhint', ',.',' com '] "como salida después de ejecutar la muestra de código anterior.

El método "Partition ()" toma solo un argumento llamado "SEP". Los usuarios pueden especificar un separador de cualquier longitud. A diferencia del método "dividir ()", este argumento es obligatorio, por lo que no puede omitir el separador. Sin embargo, puede especificar Whitespace como separador.

Tenga en cuenta que el método de partición se detiene en la primera ocurrencia del separador. Entonces, si su cadena contiene múltiples separadores, el método "Partition ()" ignorará todos los demás ocurrencias. Aquí hay un ejemplo que ilustra esto:

Text = "Linuxhint.co.a nosotros"
resultado = list (texto.dividir("."))
Imprimir (resultado)

La muestra de código producirá "['Linuxhint' ',.',' Co.nosotros '] "como salida. Si desea dividir en todas las ocurrencias del separador e incluir el separador en la lista final también, es posible que deba usar un patrón de "expresión regular" o "regex". Para el ejemplo mencionado anteriormente, puede usar un patrón regex de la siguiente manera:

importar
Text = "Linuxhint.co.a nosotros"
resultado = re.dividir("(\.)", texto)
Imprimir (resultado)

Obtendrá "['Linuxhint', ',.',' co ','.',' nosotros '] "como salida después de ejecutar la muestra de código anterior. El personaje de DOT ha sido escapado en la declaración Regex mencionada anteriormente. Tenga en cuenta que si bien el ejemplo anterior funciona con un solo carácter de punto, puede no funcionar con separadores complejos y cadenas complejas. Es posible que deba definir su propio patrón regex según su caso de uso. El ejemplo se solo menciona aquí para darle una idea sobre el proceso de retención del separador en la lista final utilizando declaraciones de regex.

El método "Partition ()" a veces puede dejar cadenas vacías, especialmente cuando el separador no se encuentra en la cadena para dividir. En tales casos, puede usar las declaraciones de comprensión de la lista para eliminar las cadenas vacías, como se explica en la sección del método "dividir ()" anterior.

text = "Linuxhint"
resultado = list (texto.dividir("."))
resultado = [Artículo para el elemento en el resultado si el elemento != ""]
Imprimir (resultado)

Después de ejecutar el código anterior, debe obtener "['Linuxhint']" como salida.

Conclusión

Para divisiones simples y directas, puede usar métodos "Split ()" y "Partition ()" para obtener tipos ITerables. Para cadenas complejas y separadores, deberá usar declaraciones de regex.