Existe uma função em Python para dividir uma string sem ignorar os espaços?
Pergunta
Existe uma função em Python para dividir uma string sem ignorar os espaços na lista resultante?
por exemplo:
s="This is the string I want to split".split()
me dá
>>> s
['This', 'is', 'the', 'string', 'I', 'want', 'to', 'split']
Eu quero algo como
['This',' ','is',' ', 'the',' ','string', ' ', .....]
Solução
>>> import re
>>> re.split(r"(\s+)", "This is the string I want to split")
['This', ' ', 'is', ' ', 'the', ' ', 'string', ' ', 'I', ' ', 'want', ' ', 'to', ' ', 'split']
Usando os parênteses de captura em re.split () faz com que a função para retornar os separadores também.
Outras dicas
Eu não acho que há uma função na biblioteca padrão que faz isso por si só, mas "partição" chega perto
A melhor maneira é provavelmente usar expressões regulares (que é como eu faria isso em qualquer idioma!)
import re
print re.split(r"(\s+)", "Your string here")
Silly resposta apenas para os pedaços dele:
mystring.replace(" ","! !").split("!")
A parte mais difícil com o que você está tentando fazer é que você não está dando-lhe um caráter de dividir diante. split () explode uma corda no personagem que você fornece a ele, e remove esse personagem.
Talvez essa ajuda pode:
s = "String to split"
mylist = []
for item in s.split():
mylist.append(item)
mylist.append(' ')
mylist = mylist[:-1]
desarrumado, mas ele vai fazer o truque para você ...