718 Stimmen

Gibt es eine einfache Möglichkeit, mehrere Leerzeichen in einer Zeichenkette zu entfernen?

Nehmen wir diese Zeichenfolge an:

The   fox jumped   over    the log.

Verwandlung in:

The fox jumped over the log.

Was ist die einfachste (1-2 Zeilen), um dies zu erreichen, ohne zu spalten und in Listen zu gehen?

31 Stimmen

Woher kommt Ihre Abneigung gegen Listen? Sie sind ein integraler Bestandteil der Sprache, und " ".join(list_of_words) ist eines der wichtigsten Idiome, um eine Liste von Zeichenketten in eine einzige, durch Leerzeichen getrennte Zeichenkette zu verwandeln.

5 Stimmen

@Tom/@Paul: Für einfache Strings wäre (string) join einfach und nett. Aber es wird komplexer, wenn es andere Leerzeichen gibt, die man NICHT stören will... in diesem Fall wären "while" oder Regex-Lösungen am besten. Nachfolgend habe ich eine "korrekte" String-Verknüpfung gepostet, mit zeitlich begrenzten Testergebnissen für drei Möglichkeiten, dies zu tun.

0voto

Chadee Fouad Punkte 1865

Die einfachste Lösung überhaupt!

a = 'The   fox jumped   over    the log.'
while '  ' in a: a = a.replace('  ', ' ')
print(a)

Ausgabe:

The fox jumped over the log.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X