In diesem Leitfaden erfahren Sie, wie Sie die split()
-Methode von Python nutzen, um eine Zeichenkette in eine Liste von Teilzeichenketten zu zerlegen.
Wenn Sie in Python mit Zeichenketten arbeiten, stehen Ihnen diverse integrierte Methoden zur Verfügung, um veränderte Kopien von Zeichenketten zu generieren. Dies beinhaltet beispielsweise die Umwandlung in Großbuchstaben oder das Sortieren einer Zeichenkette. Eine dieser Methoden ist .split()
, die eine Python-Zeichenkette in eine Liste von Teilzeichenketten aufteilt. Wir werden dies anhand von Codebeispielen genauer beleuchten.
Nach Durcharbeitung dieses Leitfadens werden Sie Folgendes gelernt haben:
- Die Funktionsweise der
.split()
-Methode. - Wie Sie die Aufteilung mithilfe der Parameter
sep
undmaxsplit
individuell anpassen können.
Legen wir los!
Syntax der split()
-Methode in Python
Hier ist die allgemeine Syntax zur Verwendung der split()
-Methode von Python für eine beliebige gültige Zeichenkette:
zeichenkette.split(sep, maxsplit)
# Parameter:
sep, maxsplit
# Rückgabe:
Eine Liste von Teilzeichenketten
zeichenkette
kann hierbei eine beliebige gültige Python-Zeichenkette sein.
Sowohl der Parameter sep
als auch maxsplit
sind optional.
sep
definiert das Trennzeichen, an dem Sie die Zeichenkette teilen möchten. Es wird als Zeichenkette angegeben.maxsplit
ist eine Ganzzahl, die bestimmt, wie oft die Zeichenkette maximal geteilt werden soll.
Sollten Sie keine optionalen Parameter angeben, werden ihre Standardwerte angewendet.
- Wenn Sie
sep
nicht explizit angeben, wird standardmäßig das Leerzeichen als Trennzeichen verwendet. - Wenn Sie keinen Wert für
maxsplit
angeben, ist der Standardwert -1, was bedeutet, dass die Zeichenkette an allen Vorkommen des Trennzeichens aufgeteilt wird.
Die Syntax in einfacher Sprache ausgedrückt:
Die split()
-Methode teilt eine Zeichenkette maximal maxsplit
Mal auf, wenn das durch den Parameter sep
angegebene Trennzeichen gefunden wird.
Nachdem wir nun die Syntax der Python split()
-Methode verstanden haben, wollen wir uns einigen Codebeispielen zuwenden.
Aufteilen einer Python-Zeichenkette in eine Liste von Teilzeichenketten
Wenn Sie Python 3 auf Ihrem Rechner installiert haben, können Sie die folgenden Codeabschnitte in einer Python-REPL ausprobieren.
Um die REPL zu starten, führen Sie einen der folgenden Befehle in Ihrem Terminal aus:
$ python
$ python -i
▶️ Sie können diese Beispiele ebenfalls im Python-Editor von wdzwdz testen.
In diesem Beispiel ist py_str
eine Python-Zeichenkette. Wir rufen die Methode .split()
für py_str
ohne Parameter auf und betrachten die Ausgabe.
py_str = "Lerne, wie man split() in Python benutzt"
py_str.split()
# Ausgabe
['Lerne,', 'wie', 'man', 'split()', 'in', 'Python', 'benutzt']
Wie Sie sehen, wird die Zeichenkette an jedem Vorkommen eines Leerzeichens aufgeteilt.
Aufteilen einer Python-Zeichenkette bei Vorkommen von Trennzeichen
#1. Als erstes Beispiel teilen wir die Zeichenkette py_str
, wobei doppelte Unterstriche (__
) als Trennzeichen dienen.
py_str = "Alles__das__Beste"
py_str.split(sep='__')
# Ausgabe
['Alles', 'das', 'Beste']
#2. Betrachten wir ein weiteres Beispiel. Hier besteht py_str
aus drei Sätzen, die jeweils mit einem Punkt (.
) enden.
py_str = "Ich liebe Programmieren. Python ist super. Ich lerne Python im Jahr 2024"
py_str.split(sep='.')
# Ausgabe
['Ich liebe Programmieren', ' Python ist super', ' Ich lerne Python im Jahr 2024']
▶️ Wenn wir die Methode .split()
für diese Zeichenkette mit .
als Trennzeichen aufrufen, enthält die resultierende Liste drei Sätze, wie in der Codezelle oben gezeigt.
#3. Stellen wir uns einige Fragen:
- Was passiert, wenn das Trennzeichen nie in der Zeichenkette vorkommt?
- Wie erfolgt die Aufteilung in diesem Fall?
Hier ist ein Beispiel:
Wir versuchen, py_str
beim Auftreten eines Sternchens aufzuteilen:
py_str = "Diese Zeile enthält kein Sternchen."
py_str.split(sep='*')
# Ausgabe
['Diese Zeile enthält kein Sternchen.']
– das nicht vorkommt.
Da in diesem Fall keine Aufteilung möglich ist, enthält die resultierende Liste die gesamte Zeichenkette.
Im nächsten Abschnitt werden wir sehen, wie wir die Methode split()
auf den Inhalt einer Textdatei anwenden können.
Aufteilen des Inhalts einer Python-Datei
Wenn Sie in Python mit Textdateien arbeiten, kann es notwendig sein, den Inhalt der Datei basierend auf einem Trennzeichen aufzuteilen, um die Weiterverarbeitung zu vereinfachen.
Hier ist eine Beispieltextdatei:
with open('sample.txt') as f:
content = f.read()
str_list= content.split(sep='...')
for string in str_list:
print(string,end='')
Das folgende Code-Snippet demonstriert, wie split
auf den Inhalt der Beispieltextdatei angewendet wird.
- Der obige Code führt Folgendes aus:
- Nutzt den Kontextmanager, um die Textdatei „sample.txt“ zu öffnen und mit ihr zu arbeiten.
- Liest den Inhalt der Datei mit der
.read()
-Methode des Dateiobjektsf
. - Teilt den Inhalt an jedem Vorkommen der Ellipse (
...
) als Trennzeichen in eine Listestr_list
auf.
Durchläuft str_list
, um auf jede Zeichenkette zuzugreifen und sie auszugeben.
# Ausgabe
Dies ist eine Beispieltextdatei
Sie enthält Informationen über
Erste Schritte mit <a href="https://wdzwdz.com/pcap-certification/">Programmierung in Python</a>
Gemäß der StackOverflow-Entwicklerumfrage von 2022
Python ist eine der beliebtesten Programmiersprachen
Also, worauf warten Sie noch? Fangen Sie an zu lernen!
Hier ist die Ausgabe.
Als Übung können Sie versuchen, den Inhalt einer Textdatei anhand eines beliebigen Trennzeichens aufzuteilen.
Aufteilen einer Python-Zeichenkette in Blöcke
Wenn Sie eine Zeichenkette einmal aufteilen, erhalten Sie zwei Teile; teilen Sie sie zweimal, erhalten Sie drei Teile.
📋 Im Allgemeinen erhalten Sie K + 1 Teile, wenn Sie eine Zeichenkette K-mal teilen.
Diese Illustration veranschaulicht dies.
Funktionsweise des maxsplit
-Parameters (Bild vom Autor)
py_str = "Block#1 Ich bin ein größerer Block, Block#2"
py_str.split(maxsplit=1)
# Ausgabe
['Block#1', "Ich bin ein größerer Block, Block#2"]
#1. Wir setzen maxsplit
auf 1. Da wir kein Trennzeichen angegeben haben, erfolgt die Aufteilung standardmäßig anhand von Leerzeichen.
Obwohl der zweite Block in der Liste Leerzeichen enthält, findet keine weitere Teilung statt, da die Teilung durch den maxsplit
-Wert von eins beschränkt ist.
py_str = "Block#1 Block#2 Ich bin ein großer Block#3, obwohl ich Leerzeichen enthalte"
py_str.split(maxsplit=2)
# Ausgabe
['Block#1',
'Block#2',
"Ich bin ein großer Block#3, obwohl ich Leerzeichen enthalte"]
#2. Erhöhen wir den maxsplit
-Wert auf 2 und beobachten, wie die Aufteilung im folgenden Beispiel erfolgt.
Wie im vorherigen Beispiel bestimmt der maxsplit
-Wert die Anzahl der durchgeführten Teilungen. Wir erhalten drei Blöcke, jeweils nach dem ersten und zweiten Vorkommen eines Leerzeichens.
#3. Was passiert, wenn Sie maxsplit
auf einen Wert setzen, der größer ist als die Anzahl der Vorkommen des Trennzeichens?
py_str = "Da, sind, nur, 4, Kommas"
py_str.split(maxsplit=8)
# Ausgabe
['Da,', 'sind,', 'nur,', '4,', 'Kommas']
In der folgenden Codezelle setzen wir maxsplit
auf 8, obwohl die Zeichenkette nur vier Kommas enthält.
Hier teilt die split
-Methode py_str
an allen vier Vorkommen eines Kommas. Selbst wenn Sie versuchen, maxsplit
auf einen Wert kleiner als -1 zu setzen, z. B. -7, wird die Teilung an allen Vorkommen des Trennzeichens durchgeführt.
Als Nächstes fassen wir alles zusammen, was wir gelernt haben, und verwenden beide Parameter sep
und maxsplit
.
Aufteilen einer Python-Zeichenkette in Blöcke anhand eines Trennzeichens
py_str = "Block#1, Block#2, Ich bin ein großer Block#3, obwohl ich ein , enthalte"
py_str.split(sep = ',',maxsplit=2)
# Ausgabe
['Block#1', ' Block#2', " Ich bin ein großer Block#3, obwohl ich ein , enthalte"]
#1. Nehmen wir an, wir müssen die Zeichenkette py_str
an den Vorkommen eines Kommas (,
) in drei Teile aufteilen. Dafür können wir im Methodenaufruf den sep
-Wert auf ','
und den maxsplit
-Wert auf 2 setzen.
Wie in der Ausgabe zu sehen ist, erfolgt die Teilung zweimal, an den ersten beiden Vorkommen des Trennzeichens.
#2. Das Trennzeichen sep
muss nicht immer ein Sonderzeichen sein. Es kann eine Folge von Sonderzeichen sein, wie die doppelten Unterstriche, die wir zuvor verwendet haben, oder es könnte sogar eine Teilzeichenkette sein.
py_str = "Du musst Datenstrukturen lernen, Algorithmen lernen und mehr lernen!"
py_str.split(sep = 'lernen',maxsplit=2)
# Ausgabe
['Du musst ', ' Datenstrukturen, ', ' Algorithmen, und mehr lernen!']
Legen wir die Zeichenkette „lernen“ als sep
-Argument fest und beobachten, wie die Teilung für unterschiedliche maxsplit
-Werte erfolgt. Hier setzen wir maxsplit
auf 2.
py_str = "Du musst Datenstrukturen lernen, Algorithmen lernen und mehr lernen!"
py_str.split(sep = 'lernen',maxsplit=-1)
# Ausgabe
['Du musst ', ' Datenstrukturen, ', ' Algorithmen, und ', ' mehr!']
#3. Wenn Sie py_str
an allen Vorkommen der Zeichenkette „lernen“ aufteilen möchten, können wir die Methode .split()
aufrufen, indem wir sep = 'lernen'
setzen – ohne den Parameter maxsplit
. Dies ist äquivalent zur expliziten Festlegung des maxsplit
-Werts auf -1, wie in der Codezelle unten dargestellt.
Wir sehen, dass die Aufteilung an allen Vorkommen von „lernen“ stattfindet.
Zusammenfassung
Ich hoffe, Sie haben nun verstanden, wie Sie die Methode .split()
mit Python-Zeichenketten verwenden können.
- Hier ist eine Zusammenfassung dieses Tutorials:
- Die in Python integrierte Methode
.split()
teilt eine Zeichenkette in eine Liste von Teilzeichenketten auf. - Verwenden Sie
zeichenkette.split()
, um die Zeichenkette an allen Vorkommen des Standardtrennzeichens, dem Leerzeichen, aufzuteilen.
Nutzen Sie zeichenkette.split(sep,maxsplit)
, um die Zeichenkette maximal maxsplit
Mal zu teilen, wenn das Trennzeichen sep
auftritt. Die resultierende Liste hat maxsplit+1
Elemente.
Als nächsten Schritt können Sie sich damit beschäftigen, wie Sie überprüfen, ob Python-Zeichenketten Palindrome oder Anagramme sind.