leerzeichen bei split erhalten?

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
wurst
User
Beiträge: 9
Registriert: Dienstag 27. April 2004, 00:18

beim split fallen ja normalerweise die lerrzeichen weg, weil er die wohl als separator verwendet. kann ich das umgehen, sodass in der resultierenden wortliste auch die leerzeichen enthalten sind?
Eisfuchs
User
Beiträge: 5
Registriert: Donnerstag 22. April 2004, 08:38
Wohnort: Bremen

hmm, keine ahnung ob es da schon was fertiges gibt, aber ich würde wohl einfach die fertige liste durch ne schleife heitzen:

liste = ["abra", "cadabra", "sim", "salabim"]

for index in len(liste):
liste[index] += ' '

aber wie gesagt, da gibt es bestimmt schon was fertiges... :lol:

mfg, lars
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Hi wurst,

und wo sollen die Leerzeichen hin, an den Anfang der Wörter, oder ans Ende der Wörter, oder als eigene Items zwischen die Wörter?


Gruß

Dookie
HarryH
User
Beiträge: 266
Registriert: Freitag 23. Mai 2003, 09:08
Wohnort: Deutschland

Hallo,

Gib doch einfach einen anderen Seperator an.
z.B.

Code: Alles auswählen

s="Ich behalte meine Leerzeichen"
print s.split(";")
Ergibt:

Code: Alles auswählen

['Ich behalte meine Leerzeichen']
Die Frage ist, wie sieht dein zu splitender String aus und was willst du wirklich machen?
Gruß, Harry
wurst
User
Beiträge: 9
Registriert: Dienstag 27. April 2004, 00:18

danke, hat sich erledigt ;)

sollte ne liste draus werden, die ungefähr SO aussieht:

'leerzeichen sind ne tolle sache'.split(?)=['leerzeichen' , ' ' , 'sind' , ' ' , 'ne' , ' ' , 'tolle' , ' ' , 'sache']
joerg
User
Beiträge: 188
Registriert: Samstag 17. August 2002, 17:48
Wohnort: Berlin
Kontaktdaten:

Auch wenn es sich erledigt hat, trotzdem noch eine Antwort für die Nachwelt:

Wenn Du z.B. weißt, daß kein ';' vorkommt und Wert auf einen kompakten Einzeiler legst, würde ich folgendes machen:

Code: Alles auswählen

'leerzeichen sind ne tolle sache'.replace(' ', '; ;').split(';')
Jörg
"Sie sind nicht berechtigt, unrechtmäßige Kopien dieses Datenträgers zu erstellen." - Microsoft-Weisheit auf einer CD von MS-VisualC++-6.0
wurst
User
Beiträge: 9
Registriert: Dienstag 27. April 2004, 00:18

da wird sich die nachwelt freuen ;)

gruß und vielen dank!
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Naja, das stimmt aber auch nur solange, wie keine ";" im Text vorkommen. Deswegen hab ich schon länger gegrübelt, wie man das allgemein lösen könnte, mir ist aber nix triviales eingefallen :oops: . Naja, für simple zwecke mag es reichen und ansonsten muss halt noch ein Vortest auf Semikolon her.

Milan
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Hallo,

man könnte ja auch "\x00" verwenden, das kommt in einem "normalen" Text nie vor, wird daher ja auch von C als Stringende verwendet.

Code: Alles auswählen

'leerzeichen sind ne tolle sache'.replace(' ', '\x00 \x00').split('\x00')
Gruß

Dookie
Antworten