Esiste una funzione in Python per dividere una stringa senza ignorare gli spazi?
Domanda
Esiste una funzione in Python per dividere una stringa senza ignorare gli spazi nell'elenco risultante?
per esempio:
s="This is the string I want to split".split()
mi dà
>>> s
['This', 'is', 'the', 'string', 'I', 'want', 'to', 'split']
Voglio qualcosa del genere
['This',' ','is',' ', 'the',' ','string', ' ', .....]
Soluzione
>>> import re
>>> re.split(r"(\s+)", "This is the string I want to split")
['This', ' ', 'is', ' ', 'the', ' ', 'string', ' ', 'I', ' ', 'want', ' ', 'to', ' ', 'split']
L'uso delle parentesi di cattura in re.split () fa sì che la funzione restituisca anche i separatori.
Altri suggerimenti
Non credo che ci sia una funzione nella libreria standard che lo fa da sola, ma "partizione" si avvicina
Il modo migliore è probabilmente usare espressioni regolari (ed è così che lo farei in qualsiasi lingua!)
import re
print re.split(r"(\s+)", "Your string here")
Risposta sciocca solo per diamine:
mystring.replace(" ","! !").split("!")
La parte difficile di ciò che stai cercando di fare è che non gli stai dando un personaggio su cui dividere. split () esplode una stringa sul carattere che gli fornisci e rimuove quel carattere.
Forse questo può aiutare:
s = "String to split"
mylist = []
for item in s.split():
mylist.append(item)
mylist.append(' ')
mylist = mylist[:-1]
Disordinato, ma farà il trucco per te ...