Seite 1 von 1

replace leerzeichenfolgen zu je einem zusammenfassen

Verfasst: Sonntag 31. Juli 2011, 02:55
von Marvek
Hi,

Habe folgendes "Problem" mit der replace Funktion;
suche eine (besonders elegante und vorzeigbare) Methode um
in einem String alle hintereinanderstehenden Leerzeichen
zu jeweils einem zu kürzen:

Also Beispiel: "aaa bbb cc 11233 7,,5"
soll zu "aaa bbb cc 11233 7,,5" werden

Wenn ich dies mit:
string.replace(' ',' ').replace(' ',' ').replace(' ',' ')
angehe, hilft das schonmal weiter, weil insgesamt 3 mal
alle doppelten Leerzeichen zu einem gekürzt werden.

Also kürze ich damit alle Folgen bis zu 8 (2**3) Leerzeichen zu einem Leerzeichen.

Lieber wäre mir aber die allgemeine Behandlung ohne hässliche Wiederholung der replace-Funktion.
Eine Schleife wäre möglich, frage mich aber ob es für sowas einen einzigen eleganten Befehl gibt,
etwa in der Art:

string.(100*replace(' ',' '))

(was natürlich nicht so geht).

Hoffe Ihr versteht wie ichs meine.

Re: replace leerzeichenfolgen zu je einem zusammenfassen

Verfasst: Sonntag 31. Juli 2011, 03:00
von pillmuncher

Code: Alles auswählen

assert ' '.join('a   b     c d   e f    g'.split()) == 'a b c d e f g'

Re: replace leerzeichenfolgen zu je einem zusammenfassen

Verfasst: Sonntag 31. Juli 2011, 07:55
von BlackJack
Ansonsten könnte man das auch mit `re.sub()` angehen.

Re: replace leerzeichenfolgen zu je einem zusammenfassen

Verfasst: Sonntag 31. Juli 2011, 17:45
von Marvek
Danke ! Hat gut geklappt ...