2017-02-01 4 views

Antwort

6

Nur bei Whitespaces aufgeteilt:

foo bar hello world 

So ist die Ausgabe eine Liste wie wäre und füge sie dann wieder hinzu.

a = 'foo bar hello world' 

splitted = a.split() # split at ' ' 

splitted = [x + ' ' for x in splitted] # add the ' ' at the end 

Oder wenn Sie es ein bisschen mehr Phantasie:

splitted = ['{} '.format(item) for item in a.split()] 
+0

Funktioniert das auch mit mehreren Leerzeichen, dh die korrekte Menge wird wieder eingefügt? – usr2564301

+2

Das macht es mehrdeutig, wo die Saite aufgeteilt werden soll. Nach dem ersten, zweiten, letzten? Da er diese Information nicht angegeben hat (und ich habe nicht darüber nachgedacht), halte ich das nicht für notwendig. – MSeifert

+0

@RadLexus: Nein, wird es nicht. Es ist nicht möglich, willkürliche Leerzeichen mit einfachen einfachen String-Methoden wie dieser zu erhalten. – ShadowRanger

8

Wenn Sie behandeln möchten und willkürliche Folgen von Whitespace zu erhalten, werden Sie einen regulären Ausdruck benötigen:

>>> import re 
>>> re.findall(r'(?:^|\S+)\s*', ' foo \tbar hello world') 
[' ', 'foo \t', 'bar ', 'hello ', 'world'] 
+0

Dies ist nützlich und ich behalte diese Lösung im Hinterkopf, aber ich muss keine zusätzlichen Leerzeichen halten. –

Verwandte Themen