it-swarm.com.de

Entfernen Sie alle Leerzeichen in einer Zeichenfolge in Python

Ich möchte an beiden Enden und zwischen den Wörtern alle Leerzeichen aus einer Zeichenfolge entfernen.

Ich habe diesen Python Code:

def my_handle(self):
    sentence = ' hello  Apple  '
    sentence.strip()

Dadurch werden jedoch nur die Leerzeichen auf beiden Seiten der Zeichenfolge entfernt. Wie entferne ich alle Leerzeichen?

681
co2f2e

Wenn Sie führende und endende Leerzeichen entfernen möchten, verwenden Sie str.strip() :

sentence = ' hello  Apple'
sentence.strip()
>>> 'hello  Apple'

Wenn Sie alle Leerzeichen entfernen möchten, verwenden Sie str.replace() :

sentence = ' hello  Apple'
sentence.replace(" ", "")
>>> 'helloapple'

Wenn Sie doppelte Leerzeichen entfernen möchten, verwenden Sie str.split() :

sentence = ' hello  Apple'
" ".join(sentence.split())
>>> 'hello Apple'
1472
Cédric Julien

Um nur Leerzeichen zu entfernen , verwenden Sie str.replace :

_sentence = sentence.replace(' ', '')
_

Zum Entfernen aller Leerzeichen (Leerzeichen, Tabulator, Zeilenvorschub usw.) können Sie split und dann join :

_sentence = ''.join(sentence.split())
_

oder ein regulärer Ausdruck:

_import re
pattern = re.compile(r'\s+')
sentence = re.sub(pattern, '', sentence)
_

Wenn Sie nur Leerzeichen am Anfang und am Ende entfernen möchten, können Sie strip verwenden:

_sentence = sentence.strip()
_

Sie können auch lstrip verwenden, um Leerzeichen nur am Anfang der Zeichenfolge zu entfernen, und rstrip , um Leerzeichen am Ende der Zeichenfolge zu entfernen.

240
Mark Byers

Alternativ können Sie auch reguläre Ausdrücke und match diese seltsamen Leerzeichen verwenden. Hier sind einige Beispiele:

Entfernen Sie ALLE Leerzeichen in einer Zeichenfolge, auch zwischen Wörtern:

import re
sentence = re.sub(r"\s+", "", sentence, flags=re.UNICODE)

Leerzeichen am ANFANG eines Strings entfernen:

import re
sentence = re.sub(r"^\s+", "", sentence, flags=re.UNICODE)

Leerzeichen im ENDE eines Strings entfernen:

import re
sentence = re.sub(r"\s+$", "", sentence, flags=re.UNICODE)

Entfernen Sie Leerzeichen sowohl am ANFANG als auch am ENDE eines Strings:

import re
sentence = re.sub("^\s+|\s+$", "", sentence, flags=re.UNICODE)

NUR DUPLICATE-Leerzeichen entfernen:

import re
sentence = " ".join(re.split("\s+", sentence, flags=re.UNICODE))

(Alle Beispiele funktionieren sowohl in Python 2 als auch in Python 3.)

81
Emil Stenström

Leerzeichen enthalten Leerzeichen, Tabulatoren und CRLF. Eine elegante und einzeilige Zeichenkettenfunktion, die wir verwenden können, ist übersetzen:

' hello  Apple'.translate(None, ' \n\t\r')

ODER wenn Sie gründlich sein wollen:

import string
' hello  Apple'.translate(None, string.whitespace)
36
MaK

Verwenden Sie strip, um Leerzeichen zwischen Anfang und Ende zu entfernen.

>> "  foo bar   ".strip()
"foo bar"
18
wal-o-mat
' hello  \n\tapple'.translate( { ord(c):None for c in ' \n\t\r' } )

MaK hat bereits oben auf die Methode "übersetzen" hingewiesen. Und diese Variante funktioniert mit Python 3 (siehe diese Frage & Antwort ).

6
Amnon Harel

Achtung:

strip führt einen Rstrip und einen Lstrip aus (entfernt führende und nachfolgende Leerzeichen, Tabulatoren, Rückgaben und Formular-Feeds, entfernt sie jedoch nicht in der Mitte des Strings).

Wenn Sie nur Leerzeichen und Tabulatoren ersetzen, erhalten Sie möglicherweise verborgene CRLFs, die dem entsprechen, was Sie suchen, aber nicht identisch sind.

4
yan bellavance
import re    
sentence = ' hello  Apple'
re.sub(' ','',sentence) #helloworld (remove all spaces)
re.sub('  ',' ',sentence) #hello world (remove double spaces)
3
PrabhuPrakash

Zusätzlich hat strip einige Variationen:

Leerzeichen im BEGINN und ENDE eines Strings entfernen:

sentence= sentence.strip()

Leerzeichen am ANFANG eines Strings entfernen:

sentence = sentence.lstrip()

Leerzeichen im ENDE eines Strings entfernen:

sentence= sentence.rstrip()

Alle drei Zeichenfolgenfunktionen striplstrip und rstrip können Parameter der Zeichenfolge zum Entfernen verwenden, wobei der Standardwert der gesamte Leerraum ist. Dies kann hilfreich sein, wenn Sie mit etwas Bestimmtem arbeiten, z. B. wenn Sie nur Leerzeichen, aber keine Zeilenumbrüche entfernen möchten:

" 1. Step 1\n".strip(" ")

Oder Sie können zusätzliche Kommas entfernen, wenn Sie eine Zeichenfolgenliste einlesen:

"1,2,3,".strip(",")
3
Anna