Python split: Wie du Strings teilen kannst

    Avatarbild von Patrick
    Patrick

    veröffentlicht am: 19.04.2020
    zuletzt aktualisiert am: 02.02.2023

    Python split: Strings in Python aufteilen!

    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.

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

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

    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

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

    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.

    😩 Gelangweilt von den Udemy & YouTube-Tutorials?!

    Lerne spielerisch Python und komme deiner gutbezahlten (und an der 🌴 liegenden) Traumkarriere einen Schritt weiter.

    TP Star TP Star TP Star TP Star TP Star

    "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

    👋 Wir warten bereits auf dich!

    Lerne das, was du wirklich brauchst.

    Im Gegensatz zu der Abendschule oder der alteingesessenen Uni lernst du bei codegree die Sprachen & Pakete, die wirklich im Jobmarkt gesucht werden.

    Logo von Python
    Logo von PyTorch
    Logo von Pandas
    Logo von Matplotlib
    Logo von Java
    Logo von NumPy
    Mehr erfahren

    100% kostenlos registrieren · keine Zahlungsdaten notwendig