Esiste una funzione in Python per dividere una stringa senza ignorare gli spazi?

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

  •  02-07-2019
  •  | 
  •  

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', ' ', .....]
È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top