Du liest:
Python split: Wie du Strings teilen kannst

Python split: Wie du Strings teilen kannst

von Patrick
19.04.2020
Jetzt Python programmieren lernen

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.

1. Strings teilen mit der Python split Methode

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']

2. rsplit

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']

3. Strings mit Slicing teilen

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

4. Zeilen mit splitlines teilen

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'''

Output:

['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)

Output:

['Dies ist \n', 'ein mehrzeiliger\n', 'Text der\n', '\n', 'bei jedem Zeilenumbruch\n', 'geteilt\n', 'wird']

5. Fazit – Split von Strings in Python

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.



Bislang gibt es keine Kommentare. Markier dein Revier und sei der Erste!

Schreibe einen Kommentar

Das könnte dich auch interessieren