¿Existe una función en Python para dividir una cadena sin ignorar los espacios?

StackOverflow https://stackoverflow.com/questions/113534

  •  02-07-2019
  •  | 
  •  

Pregunta

¿Existe una función en Python para dividir una cadena sin ignorar los espacios en la lista resultante?

P.ej:

s="This is the string I want to split".split()

me da

>>> s
['This', 'is', 'the', 'string', 'I', 'want', 'to', 'split']

quiero algo como

['This',' ','is',' ', 'the',' ','string', ' ', .....]
¿Fue útil?

Solución

>>> import re
>>> re.split(r"(\s+)", "This is the string I want to split")
['This', ' ', 'is', ' ', 'the', ' ', 'string', ' ', 'I', ' ', 'want', ' ', 'to', ' ', 'split']

El uso de paréntesis de captura en re.split() hace que la función también devuelva los separadores.

Otros consejos

No creo que haya una función en la biblioteca estándar que haga eso por sí sola, pero "partición" se acerca

Probablemente la mejor manera sea usar expresiones regulares (¡así es como haría esto en cualquier idioma!)

import re
print re.split(r"(\s+)", "Your string here")

Respuesta tonta sólo por el gusto de hacerlo:

mystring.replace(" ","! !").split("!")

La parte difícil de lo que intentas hacer es que no le estás dando un carácter en el que dividirte.split() explota una cadena en el carácter que le proporcionas y elimina ese carácter.

Quizás esto pueda ayudar:

s = "String to split"
mylist = []
for item in s.split():
    mylist.append(item)
    mylist.append(' ')
mylist = mylist[:-1]

Sucio, pero te servirá...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top