veröffentlicht am: 19.04.2020 zuletzt aktualisiert am: 02.02.2023
Oft ist es erforderlich, Strings zu teilen, da nur eine spezielle Information aus der Zeichenkette für die weitere Verarbeitung durch unsere Software in einem Anwendungsfall vonnöten ist.Wie du das Teilen des Strings selbst durchführen kannst, zeige ich dir anhand der Python split Methode im folgenden Beitrag.
split hat zwei optionale Parameter, zum einen die Zeichenkette anhand derer der String geteilt werden soll und zum anderen die Anzahl an vorzunehmenden Teilungen. Entsprechend ist der Rückgabewert eine Liste mit Elementen entsprechend der Anzahl + 1, wenn die angegebene Anzahl kleiner als die Anzahl der möglichen Teilungen sein sollte.
string.split(Separator, Anzahl) Separator (optional) Teilt den String an dieser Zeichenkette Standard = jedes Leerzeichen Anzahl (optional) Anzahl der Teilungen Standard = -1 (alle vorkommen)
Wenn split ohne Parameter aufgerufen wird, dann teilt split den String bei jedem Leerzeichen und das so oft wie möglich.
string = "Dies ist ein Beispiel" zerteilt = string.split() print(zerteilt) # ['Dies', 'ist', 'ein', 'Beispiel']
Du kannst als ersten Parameter auch eine Zeichenkette angeben, um immer dann, wenn diese vorkommt, den String an dieser Stelle zu teilen.
zerteilt = "Dies ist ein Beispiel".split('s') print(zerteilt) # ['Die', ' i', 't ein Bei', 'piel']
Wenn du split mit dem zweiten Parameter aufrufst, kannst du damit bestimmen, wie oft der String zerteilt werden soll.Das Ergebnis entspricht einer Liste mit allen Elementen, die Resultat der Teilung sind sowie einem weiteren Element, nämlich dem nicht zerteilten Teil des Strings.
zerteilt = "Dies ist ein Beispiel".split('s', 1) print(zerteilt) # ['Die', ' ist ein Beispiel']
Um nur den zweiten Parameter zu spezifizieren, kannst du als ersten Wert None übergeben.
zerteilt = "Dies ist ein Beispiel".split(None, 2) print(zerteilt) # ['Dies', 'ist', 'ein Beispiel']
Die Verwendung von rsplit funktioniert für die meisten Anwendungsfälle genauso wie split.Wenn der zweite Parameter nicht angegeben wird, gibt rsplit exakt dasselbe Ergebnis aus wie split.
print("Dies ist ein Beispiel".split()) # ['Dies', 'ist', 'ein', 'Beispiel'] print("Dies ist ein Beispiel".rsplit()) # ['Dies', 'ist', 'ein', 'Beispiel']
Wenn du jedoch den Parameter Anzahl setzt, wirst du feststellen, dass split von links beginnt, den String zu zerteilen, während rsplit von rechts beginnt.
print("Dies ist ein Beispiel".split(None, 2)) # ['Dies', 'ist', 'ein Beispiel'] print("Dies ist ein Beispiel".rsplit(None, 2)) # ['Dies ist', 'ein', 'Beispiel']
Eine weitere Möglichkeit, Strings zu teilen ist das Slicing, welches ich bereits in (Link zu substring Artikel einfügen) erläutert habe.So könntest du mit einer einfachen Schleife einen String in Teile einer bestimmten Länge unterteilen.Das folgende Beispiel demonstriert dies mit einer Länge von 4:
zahlen = "EinsZweiDreiVierFünfSechs" for i in range(0, len(zahlen), 4): print(zahlen[i:i+4])
Output:
Eins Zwei Drei Vier Fünf Sech s
Um mehrzeilige Strings in einzelne Zeilen zu zerteilen, kannst du statt split auch die Methode splitlines (siehe auch Python.org: splitlines) verwenden.
mehrzeiliger_string = '''Dies ist ein mehrzeiliger Text der bei jedem Zeilenumbruch geteilt wird'''
['Dies ist ', 'ein mehrzeiliger', 'Text der', '', 'bei jedem Zeilenumbruch', 'geteilt', 'wird']
Außerdem unterstützt splitlines noch den optionalen Parameter keepends. Wenn dieser auf True gesetzt wird, bleiben die Zeilenenden im Rückgabewert erhalten.
liste = mehrzeiliger_string.splitlines(True) print(liste)
['Dies ist \n', 'ein mehrzeiliger\n', 'Text der\n', '\n', 'bei jedem Zeilenumbruch\n', 'geteilt\n', 'wird']
Strings teilen ist in Python sehr einfach und kann von großem Nutzen sein, vor allem wenn es um das Sammeln und Normalisieren von Daten geht. Hierfür bietet uns Python nicht nur die Methode split, sondern auch rsplit um von rechts nach links, slicing um nach Indexwerten und splitlines um an Zeilenenden zu teilen.
Hast du Fragen? Hat dir etwas besonders gefallen? Sag es mir doch bitte mit einem Kommentar.
😩 Gelangweilt von den Udemy & YouTube-Tutorials?!
Lerne spielerisch Python und komme deiner gutbezahlten (und an der 🌴 liegenden) Traumkarriere einen Schritt weiter.
"Für Leute die gerne Python oder Java lernen wollen ist Codegree klasse. Ist nicht wie bei anderen Konkurrenten auf Videokursen aufgebaut..."
- Lennart Sparbier
100% kostenlos registrieren · keine Kreditkarte notwendig
Im Gegensatz zu der Abendschule oder der alteingesessenen Uni lernst du bei codegree die Sprachen & Pakete, die wirklich im Jobmarkt gesucht werden.
100% kostenlos registrieren · keine Zahlungsdaten notwendig