replace leerzeichenfolgen zu je einem zusammenfassen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Marvek
User
Beiträge: 5
Registriert: Donnerstag 3. Juni 2010, 14:36

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.
Benutzeravatar
pillmuncher
User
Beiträge: 1531
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

Code: Alles auswählen

assert ' '.join('a   b     c d   e f    g'.split()) == 'a b c d e f g'
In specifications, Murphy's Law supersedes Ohm's.
BlackJack

Ansonsten könnte man das auch mit `re.sub()` angehen.
Marvek
User
Beiträge: 5
Registriert: Donnerstag 3. Juni 2010, 14:36

Danke ! Hat gut geklappt ...
Antworten