Existe uma função em Python para dividir uma string sem ignorar os espaços?

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

  •  02-07-2019
  •  | 
  •  

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', ' ', .....]
Foi útil?

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ê ...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top